0
所以我在Java和Android这完全相同的代码,但由于某些原因,在Android的方法get()
始终未能做的工作,返回false,但在标准Java它可以完美运行。我确实有清单中的Internet许可。的BufferedReader工作在标准Java,但不是在Android的
下面是代码:
public boolean get(){
try {
jsonObject = new JSONObject(readUrl(url)); // Ignore JSON thing.
return true;
} catch (Exception ex) {
return false;
}
}
private String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1) {
buffer.append(chars, 0, read);
}
return buffer.toString();
} finally {
if (reader != null) {
reader.close();
}
}
}
您是否在AndroidManifest.xml中添加了INTERNET权限? –
是的,忘了提及它。 –
打印堆栈跟踪并添加到您的问题。它可能只是NetworkOperationNotallowedInUiThread。 –