我试图在Android9,API28中使用HttpURLConnection。它可以在Android8.0.0、API26上工作,但不能在API28上工作。
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("name", name);
String json = jsonObject.toString();
URL url = new URL("http://website_link");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStream os = urlConnection.getOutputStream();
os.write(json.getBytes("UTF-8"));
os.close();
InputStream inputStream = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("utf-8")), 8);
String line;
json = "";
while ((line = reader.readLine()) != null) {
json += line;
}
inputStream.close();
jsonObject = new JSONObject(json);
inputStream.close();
urlConnection.disconnect();
...
尝试添加manifest.xml
cleartextTrafficPermitted="true"
它看起来像这样,如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
应用程序(Android): 在我运行这个应用程序的手机中,我嗅出了数据,我看到应用程序向服务器发送了一个请求,但数据包不包含json
我正试图用android应用程序向我的web服务器发送一个Json对象。我发现的每个示例都使用了被android 6删除的HttpClient。有人能给我举一个HttpURLConnection方法的例子吗。
问题内容: 我对重用HttpUrlConnection(作为我正在开发的服务器和客户端之间的全状态协议的一部分)感兴趣。我知道持久性http有一个Connection = keep-alive标头。现在,我想知道如何重用这种构想。我写了这段代码: 现在如何将这个“ B”标头重新发送到服务器,我尝试重新连接等,但是没有任何效果。 服务器也执行 我看过很多论坛,但是没有人写过。也许不处理这个? 问题答
上面的代码在桌面JVM上工作,发送一个帖子请求,在服务器端成功解析,响应200,但是在Android系统上,请求方法保持GET(是的,我检查了它是假的),并导致404异常。官方文档表示,将doOutput设置为true会触发将请求方法设置为POST,但情况似乎并非如此。
问题内容: 使用HttpURLConnection时,如果我们不“获取”并使用它,是否需要关闭InputStream? 即安全吗? 其次, 在完全读取所有内容之前 关闭InputStream是否安全? 是否存在使基础套接字处于ESTABLISHED或CLOSE_WAIT状态的风险? 问题答案: 在读取所有内容之前关闭InputStream是否安全? 您需要先关闭输入流中的所有数据,然后再关闭它,以
我试图使用HttpURLConnection执行post请求,但不知道如何正确执行。 我可以使用以下代码成功地使用Android AsyncHttp客户端执行请求: 可以在台式机上使用curl执行相同的请求: 这两种方法都给了我来自服务器的预期响应。 现在我想使用HttpURLConntions执行相同的请求。问题是我不知道如何正确地执行它。我尝试过这样的事情: 如何正确地将与使用AsyncHtt