谷歌官方建议的HTTPURLConnection
1. 构建URL对象
2.通过URL对象的openConnection()方法得到HTTPURLConnection对象
3.通过HUC对象的一系列set方法定制请求
4.通过HUC对象的getInputStream()方法获得输入流
5.读取输入流
//示例如下
Thread thread = new Thread(new Runnable() {
Override
public void run() {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
//获取URL对象
URL url = new URL("https://www.baidu.com");
//获取HUC对象
connection = (HttpURLConnection) url.openConnection();
//定义请求
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(5000);
//获取输入流
InputStream is = connection.getInputStream();
//读取输入流
reader = new BufferedReader(new InputStreamReader(is));
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null){
builder.append(line);
}
//我们需要的解析的字符串
String result = builder.toString();
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭流以及断开连接操作,断开连接使用HUC对象的disconnect()方法
}
}
});
开源框架OkHttp
项目地址为https://github.com/square/okhttp
1.创建OkHttpClient类的实例
2.创建一个Request 的对象//重点
3.调用OHC对象的newCall()方法创建一个Call对象,在调用Call对象的execute()方法获取返回的数据,数据类型为Response类
4.调用Response对象的body().string()方法来得到字符串结果
//使用之前添加项目依赖
compile 'com.squareup.okhttp3:okhttp:3.4.1'
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
//得到OkHttpClient 对象
OkHttpClient client = new OkHttpClient();
//得到Request对象,默认Get请求在build()之前设置各项参数
Request request = new Request.Builder()
.url("https://www.baidu.com")
.build();
/*Post请求示例如下
RequestBody requestBody = new FormBody.Builder()
.add("参数","参数值")
.add("password","123")
.build();
Request request = new Request.Builder()
.url("https://www.baidu.com")
.post(requestBody)
.build();
*/
try {
//得到Response 对象
Response response = client.newCall(request).execute();
//我们想要的结果
String result = response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
}
});