2014-04-01 105 views
0

我有一個REST API服務器在localhost:8080無法打開使用urrlib在python

運行基本上我從這個站點運行一個實例的網站:https://github.com/spray/spray-template/tree/on_spray-can_1.1/src/main/scala/com/example

在我的本地:8080我看到

「打個招呼,噴上噴霧罐!」

的短信..

現在我的Python代碼是:

import urllib 
proxies = {'http': 'http://proxy.abcd.com:800'} 
response = urllib.urlopen("http://localhost:8080",proxies=proxies) 
print response.read() 

這是我所看到的:

<HTML><HEAD> 
<TITLE>Network Error</TITLE> 
</HEAD> 
<BODY> 
<FONT face="Helvetica"> 
<big><strong></strong></big><BR> 
</FONT> 
<blockquote> 
<TABLE border=0 cellPadding=1 width="80%"> 
<TR><TD> 
<FONT face="Helvetica"> 
<big>Network Error (dns_unresolved_hostname)</big> 
<BR> 
<BR> 
</FONT> 
</TD></TR> 
<TR><TD> 
<FONT face="Helvetica"> 
Your requested host "localhost" could not be resolved by DNS. 
</FONT> 
</TD></TR> 
<TR><TD> 
<FONT face="Helvetica"> 

</FONT> 
</TD></TR> 
<TR><TD> 
<FONT face="Helvetica" SIZE=2> 
<BR> 
For assistance, contact your network support team. 
</FONT> 
</TD></TR> 
</TABLE> 
</blockquote> 
</FONT> 
</BODY></HTML> 

所以,我的工作背後proxy..I有指定了代理,但它仍然不起作用。 任何線索

感謝

回答

1

localhost:8080是從你的電腦才能訪問。不從其他地方。因此,當您使用代理服務器這樣的代理proxy.abcd.com:800時,您的localhost無法訪問。這就是爲什麼它不適合你。如果你真的需要測試的代碼中,更改URL到任何其他公開可見的網站,如谷歌,雅虎,例如,等

response = urllib.urlopen("http://www.example.com",proxies=proxies) 

或者刪除代理:

response = urllib.urlopen("http://localhost:8080") 
+0

@Sabuj。 。其實我使用的是同一臺機器(所以本地主機應該可以訪問?) – Fraz

+0

是的,它應該找到它們是否在同一臺PC /服務器上。你的代理可能有問題嗎?爲了確保,請檢查'/ etc/hosts'文件中是否存在'127.0.0.1 localhost'。另外,請嘗試將代碼中的localhost更改爲「www.mydomainxyz.com」。並在'hosts'文件中像這樣映射'127.0.0.1 www.mydomainxyz.com'。 –