2012-07-12 29 views
7

Python urllib2 ve urllib kütüphaneleri kullanıyorum Neden alıyorum “HTTP Hatası 405: yöntem verilmiyor” urllib2 kullanarak bir URL isterken?

i aşağıdaki kodu

import urllib2 
import urllib 

url = 'http://ah.example.com' 
half_url = u'/servlet/av/jd?ai=782&ji=2624743&sn=I' 

req = urllib2.Request(url, half_url.encode('utf-8')) 
response = urllib2.urlopen(req) 
print response 

vardı herhalde ben

herkes sağlayabilirsiniz aşağıdaki hatayı

Traceback (most recent call last): 
    File "example.py", line 39, in <module> 
    response = urllib2.urlopen(req) 
    File "/usr/lib64/python2.7/urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib64/python2.7/urllib2.py", line 398, in open 
    response = meth(req, response) 
    File "/usr/lib64/python2.7/urllib2.py", line 511, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib64/python2.7/urllib2.py", line 436, in error 
    return self._call_chain(*args) 
    File "/usr/lib64/python2.7/urllib2.py", line 370, in _call_chain 
    result = func(*args) 
    File "/usr/lib64/python2.7/urllib2.py", line 519, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 405: Method Not Allowed 
alıyorum Yukarıdaki kodu çalıştırdığınızda beni ............

Buradaki ve neden önceden

Teşekkür çalışmıyor onun neyin biliyorum

+0

@ Paul: düzenleme –

cevap

13

Aramakta olduğunuz sunucu, aramaya çalıştığınız URL için POST yöntemine izin verilmediğini bildirir.

URL'nizin yol bölümünü Request nesne veri parametresi olarak ileterek, bunu bir GET yerine POST yapıyorsunuz.

req = urllib2.Request(url + half_url.encode('utf-8')) 
+0

için çok teşekkür ben utf-8 olsa, bir sorun olabilir URL kodlamasından geçirmeden URL kodlama şüpheli

Ben bunun yerine bir GET isteği göndermek istedi şüpheli. – geoffspear

+0

@Wooble: OP'deki ile değil. Gerçek –

+0

Eh, o örnek '.encode içinde ('utf-8')' zaten tüm ASCII olduğunu ve aynı kalacak çünkü no-op olmasına rağmen. – geoffspear

İlgili konular