HttpClient PostAsync to Blogger API

时间:2013-01-31 22:37:53

标签: c# rest oauth blogger dotnet-httpclient

我使用以下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");

1 个答案:

答案 0 :(得分:25)

这就是我能够为我的请求设置正确的OAuth auth标头的方法:

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", _accessTokenWrapper.Token.access_token );

构造函数的第一个参数是用于Authorization标头的方案。因此在请求中,标题为:

Authorization: Bearer {the access token string}