HttpResponseMessageの応答が全くない…
タイトルの通りなのですが、条件があります。
- ConsoleアプリのProgram.csで実行すると問題なく、レスポンスを得る事ができる。
- WPFプロジェクトのソースコード上ではレスポンスが帰って来ない。(MainWindow.xaml.cs)
レスポンスが帰ってこないコードは以下の内容です。 AzureMLのAPIの結果を取得する内容です。
public class Study
{
public Study()
{
InvokeRequestResponseService().Wait();
}
public class StringTable
{
public string[] ColumnNames { get; set; }
public string[,] Values { get; set; }
}
static async Task InvokeRequestResponseService()
{
using (var client = new HttpClient())
{
var scoreRequest = new
{
Inputs = new Dictionary<string, StringTable>() {
{
"input1",
new StringTable()
{
ColumnNames = new string[] {"メーカー", "燃料タイプ", "ドアの数", "車体形状", "エンジンの場所", "エンジンサイズ", "値段"},
Values = new string[,] { { "audi", "gas", "two", "sedan", "front", "136", "0" } }
}
},
},
GlobalParameters = new Dictionary<string, string>()
{
}
};
const string apiKey = "***myKey***"; // Replace this with the API key for the web service
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.BaseAddress = new Uri("***myUri***");
//↓ここのレスポンスがなく、これ以上進まない…
HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest);
if (response.IsSuccessStatusCode)
{
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine("Result: {0}", result);
}
else
{
Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));
// Print the headers - they include the requert ID and the timestamp, which are useful for debugging the failure
Console.WriteLine(response.Headers.ToString());
string responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);
}
}
}
}
ブレイクポイントで張って待っていても何もレスポンスがないため、アプリはフリーズ状態です。
何か原因がわかる方、ご教授いただきたいです。
よろしくおねがいします。