2010-07-04 5 views
3
내가 얻을 또는 POST 요청 URLLIB를 사용하여 만들 수 있습니다

에서 삭제/넣어 요청을,하지만 어떻게 삭제 -이 만들어 PUT-요청을합니까? 당신은 POST가 사용됩니다 데이터 매개 변수를 제공 할 때어떻게 파이썬

답변

1

이 방법은 urlopen 전화

에 암시 적으로 설정됩니다.

urllib.request.urlopen(url, data=None[, timeout]) 

나는 때문에이 라인의 urlib와 DELETE HTTP 방법을 사용하는 것이 가능하다고 생각하지 않습니다 : HTTP 요청을 나타내는

Request.get_method()
반환 문자열 방법. 이것은 HTTP 요청에 대해서만 의미가 있으며, 현재는 항상 'GET'또는 'POST'를 반환합니다.

대신 HTTP 방법의 더 나은 지원 .FOR httplib, httplib2, 또는 Twisted을 사용하는 것이 좋습니다. 당신은 내가 그 체크 아웃 좋을 것 클라이언트 측을 사용하여 트위스트에 HTTP 작업을 찾고 있다면

1

내가 아는 한, urllib 및 urllib2는 GETPOST 요청 만 지원합니다. 아마도 httplib 또는 httplib2을 살펴 봐야합니다.

7

requests 라이브러리는 POST, PUT, DELETE 및 기타 모든 HTTP 메소드를 처리 할 수 ​​있으며 urllib, httplib 및 해당 변형보다 훨씬 덜 위험합니다.

4

이 같은 뭔가 get_method 재정의 할 수

def _make_request(url, data, method): 
    request.urllib2.Request(url, data=data) 
    request.get_method = lambda: method 

은 그럼 당신은 방법으로 "삭제"를 전달합니다.

This 대답은 세부 사항을 설명합니다. URLLIB 라이브러리에

0

기본 HTTP 메소드는 POST이며, GET :

def get_method(self): 
    """Return a string indicating the HTTP request method.""" 
    default_method = "POST" if self.data is not None else "GET" 
    return getattr(self, 'method', default_method) 

을하지만 우리는 요청 삭제 얻을이 get_method() 함수를 재정의 할 수 있습니다 :

req = urllib.request.Request(new_url) 
req.get_method = lambda: "DELETE" 
관련 문제