我试图从restful服务接收响应,但收到超时。我能够连接到模拟器上的浏览器,因为我已经在模拟设备上配置了一个访问点来通过代理(在工作中)。网络似乎很好。我添加了:
<uses-permission android:name="android.permission.INTERNET" />
到AndroidManifest.xml文件。
代码如下:
public String getInputStreamFromUrl(String url) {
String content = null;
InputStream stream = null;
try {
HttpGet httpGet = new HttpGet(url);
HttpClient httpclient = new DefaultHttpClient();
// Execute HTTP Get Request
HttpResponse response = httpclient.execute(httpGet);
stream = response.getEntity().getContent();
BufferedReader rd = new BufferedReader(new InputStreamReader(stream), 4096);
String line;
StringBuilder sb = new StringBuilder();
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
content = sb.toString();
} catch (Exception e) {
content = e.getMessage();
}
return content;
我知道我应该返回一个流,但为了在TextView小部件中显示一些字符串值就足够了,所以我只是用这个字符串来进行实验。无论传递什么URL,它都始终挂起.execure。我也通过了有效的IP,什么都没做。
我感谢你事先的帮助。
试试这个。把它放在班级的最前面。
System.setProperty("http.proxyHost", <your proxy host name>);
System.setProperty("http.proxyPort", <your proxy port>);