我问过如何设置对服务的调用并得到a great info on HttpClient。然而,虽然那个问题在技术上得到了回答,但我仍然陷入困境。
在控制台中,我可以看到我的浏览器向服务发送了哪些请求以获取授权令牌。但是,当我尝试模仿在我的服务层中构建请求的调用时,我收到以下错误消息。 me 在这里出错的概率相当陡峭。不确定谷歌的用途,真的......
“StatusCode:500,ReasonPhrase:'内部服务器错误',版本:1.1,内容:System.Net.Http.StreamContent,Headers:\ u000d \ u000a {\ u000d \ u000a Transfer-Encoding:chunked \ u000d \ u000a连接:keep-alive \ u000d \ u000a日期:2014年11月12日星期三21:00:34 GMT \ u000d \ u000a Set-Cookie:lang = \“en \”; Max-Age = 31622400; expires = Fri,13- Nov-2015 21:00:33 GMT; Path = /; Version = \“1 \”\ u000d \ u000a服务器:nginx / 1.4.1 \ u000d \ u000a服务器:(Ubuntu)\ u000d \ u000a内容类型:文本/ plain; charset = UTF-8 \ u000d \ u000a}“
电话本身就是这样。
using (HttpClient client = new HttpClient())
{
Task<HttpResponseMessage> message
= client.PostAsync(urlToken, new StringContent(credentials));
message.Wait();
result = message.Result.ToString();
}
答案 0 :(得分:1)
正如您在链接帖子中接受的答案中所发布的那样,您需要阅读回复的内容。直接在响应上调用ToString()并没有向您显示实际错误。
将您的代码更改为:
using (HttpClient client = new HttpClient())
{
var response = await client.PostAsync(url, new StringContent(credentials));
result = await response.Content.ReadAsStringAsync();
}
一旦您可以看到服务器的实际响应消息,您应该能够确定下一步该做什么。