import urllib
import urllib2
from urllib2 import Request
url = 'https://www.google.com'
response = urllib2.urlopen(url)
login_url = (url + '/login')
data = {'email': 'john',
'password': 'example'}
req = Request(login_url, urllib.urlencode(data))
response = urllib2.urlopen(req)
File "test.py", line 50, in <module>
response = urllib2.urlopen(req)
File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 405: Method Not Allowed
POSTメソッドを実行しています。このスクリプトは、Python 2.7を実行している私のMAC OSX上で動作しますが、Python 2.7を実行している私のVirtual Machine上では、そのエラーをスローします。 POSTリクエストを行うときに渡すべきHTTPHeaderがいくつかありますか?Pythonのurllib2 POSTでVM環境で何が間違っていますか?
osxのリクエストからの応答コードは何ですか? – dm03514
私は[urllib2](https://gist.github.com/1841962#file_http_post_urllib.py)、[httplib](https://gist.github.com/1841962#file_http_post_httplib.py)を使用して405のhttpエラーを取得しません)、または[ソケットベースのスクリプト](https://gist.github.com/1841962#file_http_post_socket.py)をPython 2.x、Python 3.xにインストールします。 – jfs