2012-08-06 138 views
3

我的电脑通过隧道连接到客户端的网络,我打电话给客户端网络中的web服务。这在PC浏览器中正常工作,当我尝试通过Android应用程序访问它时,我得到ClientProtocolException。我试图通过android浏览器访问web服务ip我能够在浏览器中看到IIS服务器响应,但无法访问web服务。不是一个https网址,只是普通的http url。它不适用于任何版本的Android模拟器。Web服务请求在Android浏览器和代码中不起作用;但它在PC浏览器中工作

代码:

HttpClient httpclient = new DefaultHttpClient(); 

HttpGet httpget = new HttpGet(url); 

HttpResponse response; 

try { 
    response = httpclient.execute(httpget); 

    Log.i("Debug",response.getStatusLine().toString()); 

    HttpEntity entity = response.getEntity(); 

    if (entity != null) { 

     .... 
    } 


} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

你使用的是什么网址?你是从实际设备还是从模拟器尝试过? – Tomer 2012-08-06 12:26:25

+0

@ ftom2:实际的网址位于另一个网络中,我通过隧道将我的系统连接到该网络,因此该网址在PC浏览器中正常工作。但它不能在android模拟器中工作。我已经尝试过所有可能性,你说 – 2012-08-06 13:08:50

+0

你有适当的权限? – Tomer 2012-08-06 13:11:22

回答

1

实际上web服务中没有响应头。这就是我得到例外的原因。现在我打开一个套接字来获取响应,但仍然没有正确响应头的请求并不好。

0

您是否尝试过建立一个Web代理服务器?

httpclient.getHostConfiguration().setProxy("ip-address","port") 

System.setProperty("http.proxyHost", "ip-address"); 
System.setPropery("http.proxyPort", "port"); 
+0

在我的系统本身中,我为此IP制定了一个例外,以避免代理设置为了从浏览器访问网络服务。 – 2012-08-13 12:24:16

+0

在这种情况下,您是否可以尝试在无代理网络中复制您的问题?我想我以前遇到过这个问题。但不能恰当地解释它。 – DevCat 2012-08-13 21:41:22

1

这可能是一个防火墙应用程序(有没有内置据我所知)您可以阻止访问web服务的Android设备上。

相关问题