Why am I getting “HTTP Error 405: Method Not Allowed” when requesting a URL using urllib2?
python, urllib, urllib2
Solution
The server you are calling is telling you that the POST method is not allowed for the URL you are trying to call.
By passing in the path portion of your URL as the `Request` object data parameter you are making this a POST instead of a GET.
I suspect you wanted to send a GET request instead:
req = urllib2.Request(url + half_url.encode('utf-8'))
Problem
I am using urllib2 and urllib libraries in python suppose i had the following code ``` 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 ``` when i run the above code i am getting the following error ``` 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 ``` can anyone let me know whats happening here and why its not working Thanks in advance............