這幾天我正在寫一個轉發代理。代理連接的HTTP/s流
我遇到了三個HTTP/s代碼問題。 第一個是,無論何時我試圖處理重定向[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繞過第一個錯誤,出現的第二個問題。我從網站收到的數據(任何受http/s保護的網站,www.google.co.il上的例子)都包含這些問號所不需要的字符: 而不是希伯來文或阿拉伯文字(英文工作得很好)。
我處理的數據與此代碼:
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
而我遇到的最後一個問題是數據沒有發送到瀏覽器。代理接收數據(正如您在第二個問題中看到的那樣),但由於某種原因,它不會將數據轉發給瀏覽器。 (代碼與第二個問題相同)。
瀏覽器顯示此錯誤:ERR_TUNNEL_CONNECTION_FAILED
任何幫助將是非常讚賞!
由於提前,Yahli
*編輯:還是沒能找到一個answer.I需要你的幫助:)
如果不希望谷歌重定向到您的國家/地區,請使用https://www.google.com/ncr它將您轉到https://www.google.com – Mani
不幸的是,這對我沒有多大幫助。我需要進一步幫助解決其他問題。 –