2016-11-29 14 views
0

私はasp.netコアを使用しています。私はGETメソッドを使用してhttpのwebrequestからの応答を得ることができます。 POSTを使用してHTTP Webrequest経由で応答を取得するには405エラーが発生しています(リモートサーバーが見つかりません) GETメソッドを使用したコードです。asp.netコアのPOSTメソッドを使用した非同期http Webリクエストの応答を取得する

public static void Main(string[] args) 
     { 
      var task = MakeAsyncRequest("http://localhost:8080/nifi-api/flow/status", "text/html"); 

      Console.ReadLine(); 
     } 
     public static Task<string> MakeAsyncRequest(string url, string contentType) 
     { 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
      request.ContentType = contentType; 
      request.Method = "GET"; 
      request.Proxy = null; 

      Task<WebResponse> task = Task.Factory.FromAsync(
       request.BeginGetResponse, 
       asyncResult => request.EndGetResponse(asyncResult), 
       (object)null); 

      return task.ContinueWith(t => ReadStreamFromResponse(t.Result)); 
     } 

     private static string ReadStreamFromResponse(WebResponse response) 
     { 
      using (Stream responseStream = response.GetResponseStream()) 
      using (StreamReader reader = new StreamReader(responseStream)) 
      { 
       string results = reader.ReadToEnd(); 
       if (!string.IsNullOrEmpty(results)) 
       { 
        Data data = new Data(); 
        data = JsonConvert.DeserializeObject<Data>(results); 
       } 
       return results; 
      } 
     } 

asp.netコアで非同期POSTメソッドを使用して応答を取得する方法を教えてください。前もって感謝します。

+0

リクエストを簡単にするためにHttpClientクラスを使用できます。 http://stackoverflow.com/q/37750451/2833802をご覧ください – Set

答えて

0

おそらくこの方法ですか?

HttpClient httpClient = new HttpClient(); 
var response = await httpClient.PostAsync("http://localhost:8080/nifi-api/flow/status", new StringContent("Json string", Encoding.UTF8, "application/json")); 
関連する問題