2012-02-29 3 views
-1

헤더 값에서 문자를 이스케이프해야하는지 파악하려고합니다. 많은 예제와 같은 I는 서버 리소스에 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/)가 많이 있습니다. 왜 그 중 하나를 사용하지 않습니까? –

+0

이것은 내 자신의 코드입니다. 당신이 보게되는 첫 번째 문자열은 내가 API에서 얻은 예제 요청입니다. 지원 직원들로부터 소모 될 것입니다. 그래서이 탈출이 보편적인지 또는 무엇인지 확실하지 않았습니다. 오픈 소스 OAuth 프레임 워크를 사용하지 않는 이유는 무엇입니까? a) 나는 이미 내 자신을 굴려서 b) 나는 부 풀리거나 예기치 않은 변화가 일어나지 않거나 특정 방향으로 밀어야 만하고 c) 당신이 그것을 얻은 후에이 물건을 얻는 것이 당신 자신의 것을 굴리기가 어렵지 않다. 간단한 것은 더 좋으며, 내 것은 확장 가능하지만, 우리가 여기에 필요한 기본적인 OAuth 기능을 제공하기 위해 전체 비 대한 프레임 워크가 필요하지 않습니다. – PositiveGuy

+0

그래서 제 질문으로 돌아갑니다. 요청 헤더에서 이스케이프 문자는 내가 누락 된 점에서 보편적이며, 내 문자가 있어야합니다. – PositiveGuy

답변

3

가 여기에 내가 그것을 할 것입니다 방법은 다음과 같습니다

당신이 당신의 자신의 원료 HttpRequest에를 구성 할 이유
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(); 

확실하지. 분명히 OAuth 헤더 값을 생성하는 함수를 호출 할 것입니다. 이것은 시범 적입니다.

+0

그것이 정확히 내가 한 일입니다. 감사. 그래서 문자 그대로 큰 긴 콤마 문자로 추가합니다 ... oauth 매개 변수를 헤더의 인증에 추가하려고 할 때 권한 부여의 가치에 대해 제대로하고 있는지 확인하고 싶었습니다. – PositiveGuy

+0

다른 것 ... 당신이 얻으려는 자원을 URL에 포함하면 안됩니까? 나는 당신이 중간에 그것을 가지고 있다고 생각하지만,/api/그 문자 그대로의 텍스트는 바뀌지 않을 것입니다. 이 제 3 자 API에 대한 래퍼를 만드는 리소스는 예를 들어 고객 .json v1 / – PositiveGuy