2
POST 요청을 보내고 액세스 토큰을 받아야합니다. HTTP 요청은 다음과 같이한다 : (나는 그것을 테스트 한 피들러에 따라) 그들이해야하기 때문에 나도 몰라HTTPS 요청의 올바른 형식
POST /oauth/token HTTP/1.1
Host: api.quizlet.com
Authorization: Basic c3ZWRUhNZVA0aDp3eS4yUXA0ZXNFY0xQUFl2WkRFTGpn
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
grant_type=authorization_code&code=GENERATED_CODE
, 어떻게, 내 요청에 "grant_type"과 "코드"를 보내 요청 본문에 내가 가진
코드는 다음과 같습니다
client = new WebClient();
client.Headers[HttpRequestHeader.Authorization] = "Basic " + "MY_SECRET_CODE";
client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
client.Headers[HttpRequestHeader.Host] = "api.quizlet.com";
client.Headers[HttpRequestHeader.AcceptCharset] = "UTF-8";
client.UploadStringCompleted += ClientOnUploadStringCompleted;
client.UploadStringAsync(tokenUrl, "POST",string.Format("grant_type={0}&code={1}",
HttpUtility.HtmlEncode("authorization_code"),HttpUtility.HtmlEncode(code)));
을, BTW이 코드는 WP7에서 실행 내가 요청에서 제공하는 거의 2 일 해당 값이 단일 요청 덤비는되었습니다 100입니다 필자에게 샘플 요청을 붙여 넣으려고 시도했기 때문에 적절한 토큰을 받았습니다.
편집 :
string.Format("grant_type={0}&code={1}&redirect_uri={2}",
HttpUtility.HtmlEncode("authorization_code"),HttpUtility.HtmlEncode(code), HttpUtility.HtmlEncode("http://someurl.com"))
사이드 노트 : 당신 같은 (일반의 WinForm/콘솔 첫 번째 코드 및 디버그를 쓰기 쉽게 할 수있다 Fiddler를 사용하는 트래픽을 ph보다 Windows에서 훨씬 쉽게 가로 챌 수 있습니다. 하나)와 전화 포트 코드보다. –
코드가 저에게 효과적입니다. 그게 효과가 없다고 생각하는 이유는 무엇입니까? – bmm6o
도움을 주신 모든 분들께 감사 드리며, AcceptCharset 헤더를 적절한 양식으로 변경하고 WinForms에서 디버깅했습니다. 마지막으로, 호스트 헤더가 그것을 대체 했으므로 데이터에서 redirect_uri 매개 변수를 잊어 버렸습니다. 모든 것이 작동합니다. 감사합니다. – LadislavBohm