我正在尝试使用会员重启来设置github。
如果我尝试从像
这样的浏览器调用github api如果我尝试使用.net
,我可以看到所有有效的json数据 public ActionResult Index()
{
var url = "https://api.github.com/user?access_token=XXXXXXXX";
////add additional params
//if (additionalParams != null)
//{
// foreach (string key in additionalParams)
// {
// url += string.Format("&{0}={1}", key, additionalParams[key]);
// }
//}
HttpClient client = new HttpClient();
var result = client.GetAsync(url).Result;
if (result.IsSuccessStatusCode)
{
var json = result.Content.ReadAsStringAsync().Result;
var profile = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
//return GetClaimsFromProfile(profile);
}
return View();
}
我收到错误
服务器提交了协议违规。节= ResponseStatusLine
HttpClient不喜欢我正在尝试的内容吗?我是否需要提供浏览器为我做的额外细节?
任何帮助将不胜感激!
答案 0 :(得分:2)
添加
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
到我的web.config似乎解决了这个问题...我真的不明白为什么我需要添加它但是它有效。
答案 1 :(得分:0)
不确定它是否与此相关,但我在https://api.github.com/user端点上遇到了同样的问题。我的解决方案比我想象的要简单,但仍然很烦人,因为我花了几个小时才发现。
User-Agent
应该传递给API端点,也可以通过指定User-Agent
来实现。