0
次のPythonスクリプトが正常に動作します:PythonのHttp接続を再利用するにはどうしたらいいですか?
#!/usr/bin/env python
import httplib, urllib
params = urllib.urlencode({'url':'xxx/xxx/0AAAUw7n6qPQ922.jpg', 'key': 'xxxx'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/html"}
conn = httplib.HTTPConnection("xxx.test.com")
conn.request("POST", "/xx/delete", params, headers);
response = conn.getresponse()
print response.status, response.reason
data = response.read()
print data
conn.close()
しかし、私はポスト回以上を実行するために、オープンHTTP接続を再利用する場合、それは動作しません:
#!/usr/bin/env python
import httplib, urllib
import sys
if len(sys.argv)<2:
print "invalid input"
sys.exit(0)
path = sys.argv[1]
f = open(path)
lines = f.readlines()
f.close()
conn = httplib.HTTPConnection("xxx.test.com")
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/html"}
for line in lines:
if len(line) < 6:
continue
params = urllib.urlencode({'url': line, 'key': 'xxxx'})
conn.request("POST", "/xx/delete", params, headers);
response = conn.getresponse()
print response.status, response.reason
data = response.read()
print data
conn.close()
リターン・ステータスは次のとおりです。 500サーバーエラー
パフォーマンスを向上させるためにhttp接続を再利用したいだけですが、どうすればこの問題を解決できますか?
ありがとうございます!
DanさんはApacheの可能性がありますか、Webサーバーが次のループの前に接続をフラッシュしていますか?私はこれが非常にWebサーバーのDDoSを防止するために大げさであることを知っている..あなたは何とかそこにリセットパケットを取得している場合、毎回開く必要があるために見て興味深いかもしれません.. – dc5553
笑、私はそれを修正する方法を知っている。文字列の改行文字( '\ n')を削除するだけです。それはうまく動作します! – Dan