2012-11-17 2 views
0

웹 서버 응용 프로그램, 특히 asp.net mvc 용 Google OAuth api와 협력 중이며 Google에서 특정 oauth 요청에 대한 인증 코드를 반환하는 지점에 도달 할 수 있습니다.Google oauth 액세스 토큰 411 응답

public ActionResult GetOAuthToken() 
{ 
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(OAuthConfig.getTokenUrl(Request.QueryString["code"].ToString())); 
    myReq.Method = "POST"; 
    myReq.Host = "accounts.google.com"; 
    myReq.ContentType = "application/x-www-form-urlencoded"; 
    WebResponse resp = myReq.GetResponse(); 
    return View(); 
} 

된 OAuthConfig 내가 그와 같은 코드로 매개 변수를 사용하여 URL을 반환하는 방법 getTokenUrl()가 포함 썼다 단지 클래스입니다 : 그 시점에서, 나는 다음과 같은 코드를 사용하여 액세스 토큰을 얻기 위해 노력하고있어 , client_secret, client_id 등의 URL : https://accounts.google.com/o/oauth2/token. 디버깅을하고이 URL에 문제가 없음을 확인했습니다.

다음 오류가 계속 발생합니다. 원격 서버에서 오류를 반환했습니다 : (411) Length Required.

콘텐츠 길이를 지정해야할지 모르겠습니까? 아니면이 오류를 수정하기 위해 포함해야 할 다른 것이 있습니까?

답변

0

Google-API .NET Client을 살펴 보셨습니까?

액세스 토큰 요청을 보낼 때 Google에서 내부 속성으로 "길이"를 사용하는 것을 볼 수 있습니다. 당신은 그것을 독자적으로 고치려고 할 수 있지만, 토큰 요청을 보내기 위해서 THEIR 클래스를 사용할 수있다; 클래스를 사용하면 길이와 같은 내부에 대해 걱정할 필요가 없습니다.

+0

해당 라이브러리를 여러 번 다운로드했지만 압축 파일을 추출 할 때 '파일을 열 수 없습니다. google-api-dot-net-client.zip ', 그래서 Google의 클라이언트 라이브러리를 사용할 수 없습니다. –

+0

zip 파일을 열 때 어려울 경우 (손상되었을 수 있음 등) -이 문제를 해결하고 계속 시도하십시오. Google에서 구현할 때 자신의 물건을 구현하는 것이 좋은 이유라고 생각하지 않습니다 ... 귀하의 env에서 열리지 않는 이유를 이해하십시오. – OhadR