2012-02-29 11 views
-1

ヘッダー値で文字をエスケープする必要があるかどうかを確認しようとしています。多くの例のように私は、サーバーリソースへのOAuthのた​​めのオーバーヘッダーの承認を送信していbelowif:今私はこのような一つの大きな文字列として(私の認可のコレクションの値の部分)上で送信してい要求ヘッダー値の書式設定

“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/)があります。なぜあなたはそれらの1つを使いませんか? –

+0

これは私自身のコードです。あなたが見ている最初の文字列は、私がAPIから得たリクエスト例です。サポートスタッフから消費されています。だから私はこの脱出が普遍的であるかどうかは分かりませんでした。なぜ私はオープンソースのOAuthフレームワークを使用しないのですか? a)私はすでに自分自身を圧倒しています。b)私は盛り上がったり予期せぬ変化が起こらないようにしたり、特定の方向に押さなければならないため、c)あなたがそれを手に入れた後で、シンプルで優れていて、私のものは拡張性がありますが、ここで必要なOAuthの基本的な機能を私に与えるために、全体的なフレームワークは必要ありません – PositiveGuy

+0

私の質問に戻ってください。私はそれらを見逃しているので、要求ヘッダーのこのようなエスケープ文字が普遍的で、私の中にそれらを持っている必要がありますか? – PositiveGuy

答えて

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パラメータを追加しようとしているときに、私が権限の値に関してそうしていることを確認したかっただけです。 – PositiveGuy

+0

他のものだけ...あなたが取得しようとしているリソースをURLに含めてはいけませんか?あなたは真ん中にいると思いますが、/ api /それが変わることのないリテラルテキストです。ラッパーを作成しているこのサードパーティAPIのリソースは、たとえば次のようになります。 Customers.jsonのv1 / – PositiveGuy

関連する問題