2016-12-02 13 views
1

コンソールアプリケーションからwebapiを呼び出す必要があります。それが正常に動作している残りのクライアント から http://localhost:8077/api/Report/GetReportGroup:私は同じURLを呼び出していた場合コンソールアプリケーションからWebAPIメソッドを呼び出す方法は?

private static async Task UploadDataFromWebApi() { 
    try { 
     System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); 
     client.BaseAddress = new Uri("http://localhost:8077/api/"); 
     client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
     var resp2 =await client.GetAsync("Report/GetReportGroup"); 
     resp2.EnsureSuccessStatusCode(); 
     var aaa = resp2.Content; 
     string result = await aaa.ReadAsStringAsync(); 
     Console.WriteLine(result); 
     Console.ReadLine(); 
    }  
    catch(Exception ex) { 
    } 
}   

しかし:私は 次のコードを書かれているが、それは動作しません。

どうすれば私のコンソールアプリケーションからWeb APIメソッドを呼び出すことができますか?

ありがとうございます。コードの下

+0

の代わりに、resp2.EnsureSuccessStatusCode();ステータスコードとレスポンスの内容を確認する – Suyog

答えて

1

は私のために動作します: -

Console.WriteLine("Making API Call..."); 
using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })) 
{ 
client.BaseAddress = new Uri("http://localhost:8077/api/"); 
HttpResponseMessage response = client.GetAsync("Report/GetReportGroup").Result; 
response.EnsureSuccessStatusCode(); 
    string result = response.Content.ReadAsStringAsync().Result; 
Console.WriteLine("Result: " + result); 
} 
Console.ReadLine(); 
関連する問題