PyQt4を使用してデスクトップクライアントを開発しました。requests libによってWebサービスに接続しています。あなたが知っている、requestsおそらく最も有用なHTTPクライアントの1つ、私はそれが問題ではないと思う。奇妙なことが起こるまで私のデスクトップクライアントは正常に動作します。Pythonリクエストで「プロキシとエラー10061に接続できません」
次のコードを使用して、サーバーにリクエストを送信します。
ここで、ヘッダーには認証トークンのみが含まれています。
def getHeaders(self, additional = None):
headers = {
'Auth-Token' : HttpBasicClient.UserAuthToken,
}
if additional is not None:
headers.update(additional)
return headers
私は自分のWebサービスに接続することはできません、すべてのHTTPリクエストは同じエラーをポップ「『プロキシに接続できません。』、エラー(10061、 『』)」。たとえば、次のように
GETのURL:のhttp:// api.fangcloud.com/api/v1/user/timestamp HTTPSConnectionPool(ホスト= 'api.fangcloud.com'、ポート= 443):最大再試行回数を超過URLを:/ API/V1 /ユーザー/タイムスタンプ(ProxyErrorによって引き起こされる( 'プロキシに接続できません。'、エラー(10061、 '')))
このAPI私のサーバーのタイムスタンプを何もなく、返さないん。同じ環境の同じマシンでURLをChromeにコピーすると、正しい応答が返されます。しかし、私のデスクトップクライアントはエラーを返すだけです。要求libに何か問題はありますか?
私はこの接続エラー10061( "ターゲットマシンが積極的にそれを拒否したため接続できませんでした)"という問題を探しました。これは、WebサーバーのTCP接続拒否によって発生する可能性があります。
クライアントは、ポートをターゲットとするサーバー(HTTPの場合は80)にSYNパケットを送信します。ポート80でサービスを実行しているサーバーはSYN ACKで応答しますが、そうでない場合はRST ACKで応答します。クライアントはサーバーに到達しますが、目的のサービスには到達しません。これは、サーバーが接続の試みを「積極的に拒否」する方法の1つです。
なぜですか?クライアントは以前と同じように動作し、Chromeは引き続き動作します。私は自分のマシンでプロキシを使用しません。私が見逃したことはありますか?
共有するpythonコード –
共有、ありがとう。 –
主に10061はOS(Pythonではなく)から来ますが、ブラウザからうまく動作しているapiについてのあなたの言及は、調べるべきことです。あなたは同じシステムからそれを使ってテストしましたか?同じリクエストパラメータ? –