post を使用したときに、post がすべての情報を HTTP ヘッダーで送信したと思いました (明らかに、この件について十分な情報がありません)。そのため、データをkey=value&key2=value2
フォーマットに urlencode() する必要がある理由がわかりません。POST を使用する場合、そのフォーマットはどのように機能しますか?:
# Fail
data = {'name': 'John Smith'}
urllib2.urlopen(foo_url, data)
しかし
# Success
data = {'name': 'John Smith'}
data = urllib.urlencode(data)
urllib2.urlopen(foo_url, data)