Java HttpURLConnection在Android 5.1和4.4上传递相同的参数时返回了不同的结果
上述代码在Android5.1和Android6.0上运行良好,并返回了我想要的正确结果。但是当我在安卓4.4上运行这些程序时,使用相同的参数,它返回了不同的结果。我已经尝试了好几次,并将调试器附加到该进程。我发现可以成功地建立连接,响应代码也为200。 我猜HttpURLConnection参数一定有问题,因此服务器返回了不同的结果。我设置参数的方式是否可以在Android 5.1和6.0上运行,但不能在4.4上运行?有人能告诉我哪里做错了吗?试试下面的代码:Java HttpURLConnection在Android 5.1和4.4上传递相同的参数时返回了不同的结果,java,android,android-studio,Java,Android,Android Studio,上述代码在Android5.1和Android6.0上运行良好,并返回了我想要的正确结果。但是当我在安卓4.4上运行这些程序时,使用相同的参数,它返回了不同的结果。我已经尝试了好几次,并将调试器附加到该进程。我发现可以成功地建立连接,响应代码也为200。 我猜HttpURLConnection参数一定有问题,因此服务器返回了不同的结果。我设置参数的方式是否可以在Android 5.1和6.0上运行,但不能在4.4上运行?有人能告诉我哪里做错了吗?试试下面的代码: public static St
public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = "";
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("apikey", myAPpiKey);
conn.connect();
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
它对我有用。希望它能起作用 请尝试以下代码:
public static String request(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = "";
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("apikey", myAPpiKey);
conn.connect();
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
它对我有用。希望它能起作用 试试看为什么?设置分块流模式只会影响输出到请求正文的内容,并且在获取请求方法时没有请求正文。为什么?设置分块流模式只会影响输出到请求正文的内容,并且在获取请求方法时没有请求正文。您看到了什么区别?@EJP它在5.1或6.0上返回我想要的信息。但是在4.4上,它返回“找不到任何信息”消息。@ZionQ:请尝试我的库谢谢兄弟。请尝试一下,并获得一些反馈。当我将httpArg编码为“UTF-8”时,问题得到了解决。我想知道为什么我不需要在5.1上这么做,Android是为我做的吗?
没有找到任何信息
。你是说那是一个不同的结果?信息量很大!你看到了什么不同?@EJP它返回我在5.1或6.0上想要的信息。但是在4.4上,它返回“找不到任何信息”消息。@ZionQ:请尝试我的库谢谢兄弟。请尝试一下,并获得一些反馈。当我将httpArg编码为“UTF-8”时,问题得到了解决。我想知道为什么我不需要在5.1上这么做,Android是为我做的吗?没有找到任何信息
。你是说那是一个不同的结果?信息量很大!