0
我在使用httplib POST時遇到了問題。這裏是代碼:在httplib中斷開POST
import base64
import urllib
import httplib
http = urllib3.PoolManager()
head = {"Authorization":"Basic %s" % base64.encodestring("foo:bar")}
fields = {"token":"088cfe772ce0b7760186fe4762843a11"}
conn = httplib.HTTPSConnection("foundation.iplantc.org")
conn.set_debuglevel(2)
conn.request('POST', '/auth-v1/renew', urllib.urlencode(fields), head)
print conn.getresponse().read()
conn.close()
出來的POST是正確的。我知道我開始了一個telnet會話並輸入它工作正常。那就是:
'POST /auth-v1/renew HTTP/1.1\r\nHost: foundation.iplantc.org\r\nAccept-Encoding: identity\r\nContent-Length: 38\r\nAuthorization: Basic YXRlcnJlbDpvTnl12aesf==\n\r\n\r\ntoken=088cfe772ce0b7760186fe4762843a11'
但是,從服務器的響應「令牌找不到」當python腳本發送。順便說一句,這與urllib3(urllib2顯示相同的錯誤)正常工作,它使用多部分編碼,但我想知道什麼是錯誤的上述。我寧願不依賴另一個第三方軟件包。
我確實玩過內容類型,但拼錯了它作爲內容類型... base64.urlsafe_b64encode沒有改變任何東西。 – aterrel