【发布时间】:2013-01-31 22:37:52
【问题描述】:
我正在使用以下 API 来与 Google Blogger 进行交互。我需要在用户博客中插入一篇文章。但是,我的 PostAsync 功能有问题。我收到 401 告诉我,尽管有 API 密钥,但我的请求未获得授权,但是我认为我可能没有正确插入我的 OAuth 令牌。
我有以下代码,
这是我设置授权标头的代码,(注意密钥是假的,但与我认为的 OAuth 令牌形式相同)
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("ya29.AHES6ZTBZi1dWPVdlcF7qAD-nSM6XxwY2323232m4lXW");
这是我的 PostAsync 函数
HttpResponseMessage response = await req.PostAsync(URLs.postBlogURL + blogID + URLs.postBlogURLPost, new StringContent(json));
谁能告诉我哪里出错了?干杯。
[更新]
我不确定授权是否必须在其中包含字符串承载。
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer ya29.AHES6ZTBZi1dWPVdlcF7qAD-nSM6XxwY2323232m4lXW");
【问题讨论】:
-
有没有办法独立验证您的 API 密钥?另外,请尝试检查响应的内容,它可能包含一些额外的诊断信息。
-
是的,我可以执行需要 API 的获取请求。因此,这绝对取决于发布请求。我只是觉得我没有为我的 HttpClient 正确设置授权标头。
-
您的
GET请求怎么样?在网络浏览器中还是使用 HttpClient? -
您是否使用过 Fiddler(或类似的东西)来比较您的工作 GET 请求和失败的 POST?
-
@Snixtor 据我所知,我没有做任何 GET 请求。我使用“WebAuthenticationResult”和“WebAuthenticationBroker”进行身份验证。
标签: c# rest oauth blogger dotnet-httpclient