获取用于身份验证的令牌

时间:2014-11-12 21:09:34

标签: c# wcf authentication httpclient token

我问过如何设置对服务的调用并得到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();
}

1 个答案:

答案 0 :(得分:1)

正如您在链接帖子中接受的答案中所发布的那样,您需要阅读回复的内容。直接在响应上调用ToString()并没有向您显示实际错误。

将您的代码更改为:

using (HttpClient client = new HttpClient())
{
  var response = await client.PostAsync(url, new StringContent(credentials));
  result = await response.Content.ReadAsStringAsync();
}

一旦您可以看到服务器的实际响应消息,您应该能够确定下一步该做什么。