今はフォワードプロキシを作成しています。プロキシ接続のHTTP/sフロー
IveはHTTP/sコードに3つの問題がありました。 最初の1つは、リダイレクト[302](例:www.google.com)を処理しようとしているときはいつでもデータが得られないということです。 私はこのコードでリダイレクトを処理しています:
try:
response = requests.get("http://"+webserver, timeout=2)
if response.history:
print "Redirected to " + response.url
c = httplib.HTTPSConnection(response.url, port,config['CONNECTION_TIMEOUT'])
else:
print "Getting information from " + webserver
c = httplib.HTTPSConnection(webserver, port,config['CONNECTION_TIMEOUT'])
except requests.exceptions.ConnectionError:
print "Getting information from " + webserver
c = httplib.HTTPSConnection(webserver)
私はリダイレクトURLに直接接続することにより、最初のエラーを回避しようとしている場合は、第二の問題が表示されます。ウェブサイト(例:www.google.co.ilのhttp/sで保護されているウェブサイト)から受け取ったデータには、疑問符のような不要な文字が含まれています。ヘブライ語またはアラビア語の代わりに(英語はうまく動作します)。
私はこのコードを使用してデータを処理しています:
c = httplib.HTTPSConnection(webserver)
while 1:
c.request("GET", "/")
response = c.getresponse()
# send request to web server
# Indiscriminately forward bytes
data = response.read() # NEED TO DECODE
print "DATA : ", data
if len(data) > 0:
conn.send(data)
print "DATA SENT!"
else:
break
c.close()
conn.close()
そして、これは私が受けていたデータである(つまり、データのHTMLプレビューでの写真ですので、私は、ここにすべてのものを含めることはできません):The data
最後に私が遭遇した問題は、データがブラウザに送信されないということです。プロキシはデータを受け取りますが(第2の問題のように)、何らかの理由でデータをブラウザに転送していません。 (コードは第2の問題と同じです)。
ブラウザショーこのエラー:ERR_TUNNEL_CONNECTION_FAILED
非常に高く評価されるだろうすべてのヘルプ!事前に
おかげで、Yahli
*編集:あなたの助け:)
Googleがあなたの国のドメインにリダイレクトしないようにするには、https://www.google.com/ncrを使用してhttps://www.google.com – Mani
に転送してください。私は最初に他の問題についてさらに助けが必要です。 –