0
我想通過Python腳本調用SMS網關。我建立一個HTTP請求如下:Python urllib2 POST到短信網關[Errno 10054]
http_req = url
http_req += '?'
http_req += 'producttoken='+token
http_req += '&msg='+urllib.quote(message)
http_req += '&to='+dest
http_req += '&from='+sender
然後我發送一個請求:
req = urllib2.Request(http_req)
try:
response = urllib2.urlopen(req)
response_url = response.geturl()
print response_url
if response_url==url:
print 'SMS sent!'
except urllib2.URLError, e:
print 'Send failed!'
print e.reason
結果,我得到:
Send failed!
[Errno 10054] An existing connection was forcibly closed by the remote host
但是,如果我複製組成網址(在網頁瀏覽器中使用print http_req
), 我在目標號碼(dest
)處收到一條SMS(上面代碼中的message
值)。網址是這樣的:
https://smsgw.com/gateway.ashx?producttoken=c98f7b71-xyz23-4429-9daa-9647&body=SMS%20Gateway%20Test%20message&to=00331234567&from=MyApp
這是否與我從Python發送請求有什麼關係?是否有任何解決方法,例如通過向帖子添加標題?
也許用戶代理...,使用您自己的提琴手或網頁瀏覽器來查看您的python請求和「手工製作」請求之間的區別。 – Goufalite
您能解釋一下如何在網頁瀏覽器中看到「手工製作」的請求嗎? – QuestionMark
這取決於您使用的瀏覽器:在Chrome中按F12打開developper工具,按F5重新加載頁面並檢查網絡選項卡 – Goufalite