2016-03-30 6 views
0

私はPythonスクリプト経由でSMSゲートウェイを呼び出そうとしています。次のように私は、httpリクエストを構築:Python urllib2 smsゲートウェイへの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 

しかし、私は合成のURLをコピーする場合 宛先番号(dest)にSMS(上記のコードでmessageの値)を受信しました。 urlは次のようなものです:

https://smsgw.com/gateway.ashx?producttoken=c98f7b71-xyz23-4429-9daa-9647&body=SMS%20Gateway%20Test%20message&to=00331234567&from=MyApp 

私はPythonからリクエストを送信していることと関係がありますか?投稿にヘッダーを追加するなど、回避策はありますか?

+0

ユーザエージェント...、あなたの所有するフィドラーまたはウェブブラウザを使用して、あなたのpythonリクエストと "手作り"リクエストの違いを確認することがあります。 – Goufalite

+0

ウェブブラウザで「手作り」のリクエストを見る方法を教えてください。 – QuestionMark

+1

使用しているブラウザによって異なります。ChromeではF12キーを押してデベロッパーツールを開き、F5キーを押してページを再読み込みし、ネットワークタブを確認します – Goufalite

答えて

0

このエラーは、通常、リモートホストが予期した形式でデータを受信せず、接続をリセットした場合に発生します。 (ネットワークリンクの障害やリモートホストの問題など、このエラーが発生する可能性はありますが、シナリオではそうは思われません)

送信された実際のパケットとwiresharkそれに応じてスクリプトを変更してください。

パケットがどれだけ届いているかによってwiresharkが機能しない可能性があります。その場合は、Service Trace Viewerを試してみてください。

関連する問題