Reputation: 135
i am trying to receive a response from a HttpClient in Windows Phone 8.1 but it hangs on the method:
httpClient.SendRequestAsync(requestMessage);
The code looks like this:
// Create a client
var httpClient = new HttpClient();
// Add a new Request Message
var requestMessage = new HttpRequestMessage(HttpMethod.Post, new Uri(serviceUri));
// Add our custom headers
requestMessage.Headers.Add ("Username", username);
requestMessage.Headers.Add ("Credential", password);
requestMessage.Headers.Add ("DBName", databaseName);
requestMessage.Method = HttpMethod.Get;
// Send the request to the server
var response = await httpClient.SendRequestAsync(requestMessage);
// Just as an example I'm turning the response into a string here
var token = await response.Content.ReadAsStringAsync();
return token;
The server receives the header values and returns the token but the HttpClient will no get the answer.
Is there anything wrong in this code?
Thank you for your help!
Upvotes: 0
Views: 462
Reputation: 456417
I suspect that further up your call stack, your code is calling Task<T>.Result
or Task.Wait
. This will deadlock your application.
The appropriate solution is to replace all calls to Result
or Wait
with await
.
More info in my MSDN article on async
best practices or my blog post that deals with this kind of async
deadlock in detail.
Upvotes: 2