2016-10-14 1 views
0

내 프로그램에서 https://api.dropbox.com/1/oauth2/token에 액세스하려고합니다. 이를 위해 http.client.HTTPSConnection()을 사용하려고했습니다. 또한 내가 때문에,파이썬이 HTTP 서버에 연결 중

{"error": "Call requires one of the following methods: POST, OPTIONS. Got GET."}

나는이 하위 도메인에 대한 일이 있다고 생각 : 그러나, 나는 내 브라우저를 통해 동일한 요청을 보낼 때, 나는 실제 응답을 얻을에도 불구하고, 서버에서 400 문을 수신하고 https://docs.python.org/3/에 대한 기능을 테스트했으며 그 결과는 매우 유사합니다. 여기

내 코드 (Python3)입니다 :

conn = http.client.HTTPSConnection('docs.python.org') 
conn.request('get', '/3/') 
response = conn.getresponse().read() 
print(response) 
내가 적절한 요청을 보낼 수있는 http.client 라이브러리를 사용하는 방법

?

+2

대문자 'GET'을 사용해보세요. –

+0

@Philip Tzou 나는 이것을 실제로 고쳤다 고 믿을 수 없다! 제발 게시물은 답변이므로 받아 들일 수 있습니다 –

+0

['requests'] (http://docs.python-requests.org/en/master/) –

답변

2

TL : 소문자 'get'을 대문자 'GET'으로 변경하여 문제를 해결하십시오.

이유 : 5.1.1 절 RFC2616에있어서

[방법 토큰 방식을 나타낸다는 요청-URI에 의해 식별되는 자원 수행한다. 이 메서드는 대/소문자를 구분합니다.

RFC2616 또한, "POST"를 "HEAD"를 "GET", "PUT", "삭제", "추적"하고, "CONNECT", "옵션"이다 8 개 방법을 정의 하였다. 모두 대문자입니다.

python-requestsjQuery.ajax과 같은 일부 HTTP 클라이언트는 소문자 메서드도 지원하지만 이러한 메서드를 사용하는 RFC에 정의 된 표준 방법은 아닙니다. 문제를 방지하려면 먼저 대문자를 사용하십시오.

+0

'요청'을 살펴볼 가치가 있습니다. 더 관련성이있는 소문자 일 것입니다 이 질문은 python 질문 –

+0

@ cricket_007 좋은 제안이므로 예제. 추가됨. :) –