My problem is very similar to this question here. I have an AuthenticationService class that makes an HttpClient PostAsync() and never returns the result when I am running it from the ASP project, but when I implement it in a Console app it works just fine.
This is my Authentication Service class:
public class AuthenticationService : BaseService { public async Task<Token> Authenticate (User user, string url) { string json = JsonConvert.SerializeObject(user); StringContent content = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage response = await _client.PostAsync(url, content); string responseContent = await response.Content.ReadAsStringAsync(); Token token = JsonConvert.DeserializeObject<Token>(responseContent); return token; } } And it is here where it hangs: HttpResponseMessage response = await _client.PostAsync(url, content);
Here is my Controller calling the service:
public ActionResult Signin(User user) { // no token needed to be send - we are requesting one Token token = _authenticationService.Authenticate(user, ApiUrls.Signin).Result; return View(); } Here is an example of how I have been testing the service using a Console app, and it runs just fine.
class Program { static void Main() { AuthenticationService auth = new AuthenticationService(); User u = new User() { email = "[email protected]", password = "password123" }; Token newToken = auth.Authenticate(u, ApiUrls.Signin).Result; Console.Write("Content: " + newToken.user._id); Console.Read(); } }