2013-01-31 47 views
4

我正在使用以下API來允許我與Google Blogger進行交互。我需要在用戶博客中插入帖子。但是我的PostAsync功能有問題。我得到一個401告訴我,儘管我有一個API密鑰,但我的請求沒有被授權,但是我想我可能沒有正確插入我的OAuth令牌。HttpClient PostAsync到Blogger API

我有下面的代碼,

這是我建立了我的授權頭的代碼(請注意,關鍵有假的,但相同的形式,我認爲是OAuth令牌)

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("ya29.AHES6ZTBZi1dWPVdlcF7qAD-nSM6XxwY2323232m4lXW"); 

這是我PostAsync功能

   HttpResponseMessage response = await req.PostAsync(URLs.postBlogURL + blogID + URLs.postBlogURLPost, new StringContent(json)); 

誰能告訴我在哪裏,我錯了?乾杯。

[UPDATE]

我amen't確定授權是否包括在它的字符串承載。

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer ya29.AHES6ZTBZi1dWPVdlcF7qAD-nSM6XxwY2323232m4lXW"); 
+1

有沒有辦法獨立驗證您的API密鑰?另外,請嘗試檢查響應的內容,它*可能*包含一些額外的診斷信息。 – Snixtor

+0

是的我可以做一個需要API的請求。所以這絕對要歸功於發佈請求。我只是覺得我無法正確設置我的HttpClient的授權頭。 –

+0

你是怎麼做GET請求的?在網頁瀏覽器或使用HttpClient? – Snixtor

回答

25

這是我如何能夠得到適當的OAuth身份驗證頭對我的要求設置:

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

構造函數的第一個參數是要用於Authorization頭的方案。所以在請求中,標題的內容如下:

Authorization: Bearer {the access token string} 
+0

謝謝!在這裏工作很好。 – Bjoern

+0

您好@Scott能否請您發佈accessTokenWrapper類的代碼?我有興趣爲令牌值創建全局商店。謝謝 –

相關問題