HttpURLConnection GET和POST获取文本数据
更新日期:2023-3-9
AndroidManifest.xml
中不要忘记申请网络权限
<uses-permission android:name="android.permission.INTERNET" />
GET方式获取文本数据
目标网址是 https://www.baidu.com/s?wd=abc ,这是百度搜索abc
新建URL对象后,调用openConnection()
方法建立连接,得到HttpURLConnection
。设置一些参数。
然后从HttpURLConnection
连接中获取输入流,从中读取数据。
| try {
URL url = new URL("https://www.baidu.com/s?wd=abc");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(10 * 1000);
conn.setRequestProperty("Cache-Control", "max-age=0");
conn.setDoOutput(true);
int code = conn.getResponseCode();
if (code == 200) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream inputStream = conn.getInputStream();
byte[] in = new byte[1024];
int len;
while ((len = inputStream.read(in)) > -1) {
baos.write(in, 0, len);
}
final String content = new String(baos.toByteArray());
baos.close();
inputStream.close();
conn.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
|
POST调用接口
和上文的GET类似,都是url开启连接拿到conn
,然后设置参数。
这里我们用POST方法,并且带有body
。服务器能收到我们传上去的参数。
假设服务器接受的是json格式。
| try {
URL url = new URL("http://sample.com/sample");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(10 * 1000);
// 这里是示例
JSONObject bodyJson = new JSONObject();
bodyJson.put("imei", "获取imei");
bodyJson.put("deviceSn", "获取sn");
bodyJson.put("deviceBrand", Build.BRAND);
String body = bodyJson.toString();
conn.setRequestProperty("Content-Type", "application/json"); // 类型设置
conn.setRequestProperty("Cache-Control", "max-age=0");
conn.setDoOutput(true);
conn.getOutputStream().write(body.getBytes());
int code = conn.getResponseCode();
if (code == 200) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream inputStream = conn.getInputStream();
byte[] in = new byte[1024];
int len;
while ((len = inputStream.read(in)) > -1) {
baos.write(in, 0, len);
}
String content = new String(baos.toByteArray());
baos.close();
inputStream.close();
conn.disconnect();
JSONObject jsonObject = new JSONObject(content);
// 根据定义好的数据结构解析出想要的东西
}
} catch (Exception e) {
e.printStackTrace();
}
|
实际开发中,我们会使用一些比较成熟的网络框架,例如OkHttp。
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~
📖AndroidTutorial
📚AndroidTutorial
🙋反馈问题
🔥最近更新
🍪投喂作者
Ads