cURL 経由でソーシャル メディア API をクエリする Python アプリケーションを作成しています。私が照会するさまざまなサーバー (Google+、Reddit、Twitter、Facebook など) のほとんどで、cURL が不平を言っています。
追加のものは正常に転送されません.c:1037: 0 0
通常とは異なる点として、アプリケーションの初回起動時に、各サービスの応答でこの行が 1 回または 2 回スローされます。数分後、線が数回表示されます。明らかに、cURL は気に入らないものを特定しています。約 30 分後、サーバーがタイムアウトし始め、この行が何十回も繰り返されるため、実際の問題が示されています。
これをどのように診断できますか?Wireshark を使用して要求ヘッダーと応答ヘッダーをキャプチャし、cURL が不平を言う原因となる可能性のある異常を検索しようとしましたが、Wireshark のすべての複雑さのために、ヘッダーのみを分離して表示する方法はないようです。
コードの関連部分は次のとおりです。
output = cStringIO.StringIO()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0')
c.setopt(c.WRITEFUNCTION, output.write)
c.setopt(c.CONNECTTIMEOUT, 10)
c.setopt(c.TIMEOUT, 15)
c.setopt(c.FAILONERROR, True)
c.setopt(c.NOSIGNAL, 1)
try:
c.perform()
toReturn = output.getvalue()
output.close()
return toReturn
except pycurl.error, error:
errno, errstr = error
print 'The following cURL error occurred: ', errstr