2017-07-19 5 views
1

Ich möchte eine HTTP-Anfrage an eine Website (URL) senden und eine Antwort erhalten (Grundsätzlich muss ich GetAsync und PutAsync-Methoden dafür verwenden) und ich muss es mit .NETCoreApp tun 1.1 in VS2017.Beispielanwendung auf HttpClient mit .NETCoreApp 1.1

  • Versteh und Post
  • Einstellung Header
  • TLS Ignorieren cert Fehler

Hat jemand ein einfaches Beispiel, wie dies zu erreichen?

Ich fand dieses Beispiel in der API-Dokumentation HttpClient Class, aber es ist nicht klar, wie die oben genannten Punkte zu erreichen.

Antwort

1

Ich verbringe ein paar Stunden auf den Quellcode suchen corefx und kam mit diesem einfachen Beispiel oben

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; 
     } 
    } 
} 

Siehe Code in github.

Verwandte Themen