我正在尝试从彗星URL链接中检索json字符串。
以下是API链接:http://www.plurk.com/API#realtime 这是描述:
您将从/ APP / Realtime / getUserChannel获取一个URL,并对此URL执行GET请求以获取新数据。如果没有新的数据添加到您的频道,您的请求将在返回响应之前休眠约50秒。您不会收到有关已登录用户添加的响应的通知,但您将收到有关新plurks的通知。
我能够获取comet_server网址并将其粘贴到firefox并手动获取结果。但是,当我试图在android中获取这些json字符串时,我只有超时错误。
01:48:51.698 com.net.xerothermic.plurk INFO PLURK http://comet58.plurk.com:80/comet?channel=...&offset=0
01:53:43.680 com.net.xerothermic.plurk ERROR PLURK HTTP con。得到 响应错误:连接超时
以下是我用来检索数据的代码。
URL url = new URL(urlString);
HttpURLConnection conn = null;
try
{
conn = (HttpURLConnection) url.openConnection();
}
catch (IOException ex)
{
Log.e("PLURK", "HTTP con. open error:" + ex.getMessage());
return "";
}
try
{
conn.setRequestMethod("GET");
}
catch (ProtocolException ex)
{
Log.e("PLURK", "HTTP con. set method error:" + ex.getMessage());
}
try
{
return conn.getResponseMessage();
}
catch (IOException ex)
{
Log.e("PLURK", "HTTP con. get response error:" + ex.getMessage());
return "";
}
非常感谢任何建议!
编辑:这是浏览器的输出。我错过了设置一些属性吗?
答案 0 :(得分:0)
即使默认情况下超时值设置为0(意味着无限等待),我发现我仍然需要显式设置超时值以便不引发IOException。
setConnectTimeout(70000);
setReadTimeout(70000);
仅在Android上需要,但不需要Windows ...