Czy istnieje sposób, aby złożyć żądanie za pomocą metody PATCH http w języku Python?Jak utworzyć żądanie PATCH w języku Python?
Próbowałem używać protokołu httplib, ale nie akceptuję parametru PATCH jako metody.
Czy istnieje sposób, aby złożyć żądanie za pomocą metody PATCH http w języku Python?Jak utworzyć żądanie PATCH w języku Python?
Próbowałem używać protokołu httplib, ale nie akceptuję parametru PATCH jako metody.
Próbowałem to w Pythonie 3, i wydawało się do pracy (ale nie mam pod ręką serwera, który obsługuje typ PATCH
życzenie):
>>> import http.client
>>> c = http.client.HTTPConnection("www.google.com")
>>> r = c.request("PATCH", "/index.html")
>>> print(r.status, r.reason)
405 Method Not Allowed
jestem przy założeniu, że HTTP 405
nadchodzi z serwera i że jest "niedozwolone".
Przy okazji, dziękuję za pokazanie mi fajnego PATCH method w HTTP.
Dzięki za odpowiedź, postaram się to później i oznaczyć jako zaakceptowany. API GitHub zaakceptował POST zamiast PATCH, ale spróbuję i zatrzymam to na przyszłość. –
Z Requests, co PATCH requests jest bardzo prosta:
import requests
r = requests.patch('http://httpbin.org/patch')
Jak zalogować "r". Czy powinienem po prostu zrobić 'self.log.info ('Response:% s'% r)'? – Hussain
jak mogę przekazać dane json string do tego? –
@PrasaanthNeelakandan tutaj są lepsze odpowiedzi [Post JSON przy użyciu Python Wnioski] (http://stackoverflow.com/questions/9733638/post-json-using-python-requests#26344315) –
wydaje się działać w 2.7.1, jak również.
>>> import urllib2
>>> request = urllib2.Request('http://google.com')
>>> request.get_method = lambda: 'PATCH'
>>> resp = urllib2.urlopen(request)
Traceback (most recent call last):
...
urllib2.HTTPError: HTTP Error 405: Method Not Allowed
Świetna informacja. Jest to prosty mały hack, który sprawia, że urllib2 używa PATCH zamiast POST. Nie wiem, dlaczego PATCH nie został jeszcze wdrożony jako opcja. –
Jest niezwykle prosty z httplib2:
import httplib2
http = httplib2.Http()
http.request("http://www.google.com", "PATCH", <patch content>)
Użyłem biblioteki httplib2 się w profesjonalnym ramach odpoczynku, który obejmuje wsparcie poprawki. Obsługuje Python 2.3 lub nowszy (w tym 3.x) i działa pięknie!
Czy chodzi ci o PUT? PUSH nie jest prawidłową metodą żądania dla HTTP – dave
Sprawdź [tutaj] (http://stackoverflow.com/questions/111945/is-there-any-way-to-do-http-put-in-python), używa PUT na tym poście, myślę, że możesz użyć PUSH jako czasownika i nie sprawi ci kłopotu, nadal powinieneś używać PUT zamiast PUSH – Hassek
Przepraszam, ludzie, wpisałem niewłaściwą nazwę metody, zredagowałem pytanie oO –