网络数据协议
- HTTP 协议,建立在TCP/IP 的基础上
- FTP 协议
- TCP/IP 协议,socket 编程(分客户端和服务端)
HTTP 请求头
浏览器中请求一次百度的网页
第一行(Request-Line):GET/HTTP/1.1 代表以get方式请求1.1版本的 HTTP 协议
Accept:/ 代表可以接受所有的数据类型
Accept-Encoding:gzip,deflate代表可以接收压缩过后的数据
Accept-Language:zh-CN 语言
Connection : Keep-Alive 维护长连接
Cookie : 存在网页上的值
User-Agent: 用户请求头
服务器接受到这些内容后,会按照请求路径找到对应的网页,将网页的内容返回给客户端
网页内容的三种方式:
- HTML
- XML
- JSON
通信的过程中需要文件的上传、下载会以 IO 流的方式传输
下载一张图片
private void getNetWorkImage() {
new Thread(new Runnable() {
@Override
public void run() {
try {
URL imageUrl = new URL("https://www.baidu.com/img/bdlogo.png");
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(10000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
Message msg = mHandle.obtainMessage();
msg.what = 1;
msg.obj = bitmap;
mHandle.sendMessage(msg);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}