2012-02-29 52 views
-1

試圖弄清楚我是否需​​要在標題值中轉義字符。很像例如belowif我在發送標題授權使用OAuth服務器資源:現在,我在送它(我的收藏授權的價值部分)作爲一個大的字符串這樣格式化請求標頭值

「PUT /api/v1/articles/6.json HTTP/1.1\r\nAccept: /\r\nUser-Agent: OAuth gem v0.4.5\r\nContent-Length: 9\r\nContent-Type: application/x-www-form-urlencoded\r\nAuthorization: OAuth oauth_consumer_key=\」nMu4u9pLRfDrxhPVK5yn\「, oauth_nonce=\」5346IG1e5bV3ytQwdFqkP8Rgr0VJiA9Xb4FE0\「, oauth_signature=\」64545G%2Byp%2F2BsqJ%2BUUgbjIIIV9E%3D\「, oauth_signature_method=\」HMAC-SHA1\「, oauth_timestamp=\」1330022891\「, oauth_token=\」ivouGxpsJbyIU5viPKOO\「, oauth_version=\」1.0\「\r\nConnection: close\r\nHost: someHostNameHere\r\n\r\n」 

我的授權密鑰值:

"OAuth oauth_consumer_key=Mu4u9pLRfDrxhPVK5y, oauth_nonce=5346IG1e5bV3ytQwdFqkP8Rgr0VJiA9Xb4FE0, oauth_signature=64545G%2Byp%2F2BsqJ%2BUUgbjIIIV9E%3D, oauth_signature_method=HMAC-SHA1, oauth_timestamp=1330022891, oauth_token=ivouGxpsJbyIU5viPKOO, oauth_version=1.0" 
+0

oAuth有許多[開源.Net庫](http://oauth.net/code/)。你爲什麼不使用其中之一? – 2012-02-29 20:25:36

+0

這是我自己的代碼。您看到的第一個字符串是我從API中獲取的一個示例請求,我將從他們的支持人員那裏獲取消息。所以我不確定這個逃跑是普遍的還是什麼。爲什麼我不使用開源OAuth框架? a)因爲我已經把自己捲起來了,b)因爲我不喜歡膨脹或意想不到的變化,或者不得不被推向某個方向,c)在你得到它之後,這些東西不是很難推出自己的。簡單更好,我的可擴展,但我不需要一個完整的臃腫的框架給我基本的OAuth功能,我們需要在這裏 – PositiveGuy 2012-02-29 20:35:08

+0

回到我的問題。在通用的請求標題中是否像這樣轉義字符?我錯過了它們,並且應該將它們放在我的? – PositiveGuy 2012-02-29 20:37:17

回答

3

這是我會怎麼做:

var url = "https://somedomain.com/resource/v1/"; 
var request = WebRequest.Create(url) as HttpWebRequest; 
request.Method = "POST"; 
request.ContentType = "text/xml"; 
var oAuthHeader = "OAuth oauth_consumer_key=Mu4u9pLRfDrxhPVK5y, oauth_nonce=5346IG1e5bV3ytQwdFqkP8Rgr0VJiA9Xb4FE0, oauth_signature=64545G%2Byp%2F2BsqJ%2BUUgbjIIIV9E%3D, oauth_signature_method=HMAC-SHA1, oauth_timestamp=1330022891, oauth_token=ivouGxpsJbyIU5viPKOO, oauth_version=1.0"; 
request.Headers.Add("Authorization", oAuthHeader); 
var response = request.GetResponse(); 

不知道爲什麼你會想構建自己的原料的HttpRequest。顯然你會調用一些函數來生成你的OAuth頭值,這只是示範性的。

+0

這正是我所做的。謝謝。所以你把它作爲一個大的逗號稀釋後的字符串加上......只是想驗證我是否正確地做了正確的授權的價值,當試圖將oauth params添加到頭的auth。 – PositiveGuy 2012-02-29 22:44:30

+0

只有其他的東西...不應該的網址包括你試圖獲得的資源?我想你在中間有它,但是當我有/ api /那是不會改變的字面文本。我爲此第三方API創建封裝的資源將是Customers.json v1 / – PositiveGuy 2012-02-29 22:45:49