Http请求
- Http请求是客户端和服务器端之间,发送请求和返回应答的标准(TCP)
- 客户端发出一个HTTP请求后,就与服务器建立起TCP连接,服务端接收到请求并进行处理后返回给客户端响应数据
HTTPURLConnection
标准Java接口(java.NET) —-HttpURLConnection,可以实现简单的基于URL请求、响应功能;
HttpURLconnection是基于http协议的,支持get,post,put,delete等各种请求方式,最常用的就是get和post.
HTTP常用的请求方式
- get方式:明文传参,在地址栏可以看到参数,调用简单,不安全
- post方式:暗文传参,在地址栏参数不可见,调用稍复杂,安全
使用 HTTPURLConnection步骤
- 创建URL对象
- 通过URL对象调用openConnection()方法获得HttpURLConnection对象
- HttpURLConnection对象设置其他连接属性
- HttpURLConnection对象调用用getInputStream()方法向服务器发送http请求并获取到服务器返回的输入流
- 读取输入流,转换成String字符串
注意:
- 在Android中访问网络必须添加网络权限
- 在Android中访问网络必须放在子线程中执行
使用 HTTPURLConnection代码展示
private void getWebInfo(){
try {
//1.找水源——创建URL
URL url=new URL("http://www.csdn.net/");
//2.开水闸——openConnection
HttpURLConnection httpURLConnection= (HttpURLConnection) url.openConnection();
//3.建管道——InputStream
InputStream inputStream=httpURLConnection.getInputStream();
//4.建蓄水池蓄水——InputStreamReader
InputStreamReader reader=new InputStreamReader(inputStream,"UTF-8");
//5.水桶盛水——BufferedReader
BufferedReader bufferedReader=new BufferedReader(reader);
StringBuffer stringBuffer=new StringBuffer();
String temp=null;
while ((temp=bufferedReader.readLine())!=null){
stringBuffer.append(temp);
}
bufferedReader.close();
reader.close();
inputStream.close();
Log.e("MAIN",stringBuffer.toString());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
添加网络权限
<uses-permission android:name="android.permission.INTERNET" />