2017-07-19 53 views
1

我想向某个网站(URL)发送Http请求并获得响应(基本上我需要使用GetAsync和PutAsync方法),并且需要使用.NETCoreApp 1.1在VS2017。使用.NETCoreApp 1.1在HttpClient上的示例应用程序

  • 不要GET和POST
  • 设置页眉
  • 忽略TLS证书错误

有没有人有一个简单的例子,如何实现这一目标?

我在API文档HttpClient Class中发现了这个例子,但不清楚如何实现以上几点。

回答

1

我花了几个小时在看源代码corefxgithub这个简单的例子上来

using System; 
using System.Net.Http; 
using System.Text; 
using System.Threading.Tasks; 

namespace CoreFxHttpClientHandlerTest 
{ 
    public class Program 
    { 
     private static void Main(string[] args) 
     {    
     } 

     public static async Task<bool> Run() 
     { 
      var ignoreTls = true; 

      using (var httpClientHandler = new HttpClientHandler()) 
      { 
       if (ignoreTls) 
       { 
        httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; 
       } 

       using (var client = new HttpClient(httpClientHandler)) 
       { 
        using (HttpResponseMessage response = await client.GetAsync("https://test.com/get")) 
        { 
         Console.WriteLine(response.StatusCode); 
         var responseContent = await response.Content.ReadAsStringAsync(); 
         Console.WriteLine(responseContent); 
        } 

        using (var httpContent = new StringContent("{ \"id\": \"4\" }", Encoding.UTF8, "application/json")) 
        { 
         var request = new HttpRequestMessage(HttpMethod.Post, "http://test.com/api/users") 
         { 
          Content = httpContent 
         }; 
         httpContent.Headers.Add("Cookie", "a:e"); 

         using (HttpResponseMessage response = await client.SendAsync(request)) 
         { 
          Console.WriteLine(response.StatusCode); 
          var responseContent = await response.Content.ReadAsStringAsync(); 
          Console.WriteLine(responseContent); 
         } 
        } 
       } 
      } 

      return true; 
     } 
    } 
} 

见代码。