网络交互
HTTP
请求/响应式的协议。
HTTP请求:客户端在与服务器端建立连接后,即可向服务器 端发送请求。
HTTP响应:服务器端接收到请求后做出响应。
特点:简单快速,灵活,无状态。
HTTP请求一般包括请求的Head和Body。请求方式为GET,POST,PUT,DELETE。
请求头 | 说明 |
---|---|
Host | 请求域名,可以是www开头的,也可以是IP+域名 |
Charset | 字符集 |
Connection | 是否保持长连接 |
From表单 | 是POST锁必须和特有的(一般都放在请求Body中) |
超时时间 | 作为网络没有响应的等待限制,超时会默认给客户端显示Timeout异常 |
常见的状态码:
200:服务器成功处理了客户端的请求。
302:请求的资源临时从不同的URI响应请求,但请求这应继续使用原有位置进行以后的请求。
404:服务器找不到请求的资源。
500:服务器发送错误,无法处理客户端的请求。
HTTP如何进行请求与响应
HTTP请求:
URL realUrl = new URL(requestUrl);
//通过HttpURLConnection对象,向网络地址发送请求
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
conn.setDoOutput(true);//设置允许输出
conn.setUseCaches(false);//设置不使用缓存
conn.setRequestMethod("POST");//设置使用POST的方法发送
conn.setRequestProperty("Connection", "Keep-Alive");//设置维持长连接
conn.setRequestProperty("Charset", "UTF-8");//设置文件字符集
conn.setRequestProperty("Content-Length", String.valueOf(data.length));//设置文件长度
conn.setRequestProperty("Content_Type", "application/x-www-form-urlencoded");//设置文件类型
conn.setConnectTimeout(6*1000);
HTTP响应:
if(conn.getResponseCode()!=200){
throw new RuntimeException("请求url失败");
}
InputStream is = conn.getInputStream();//得到网络返回的输入流
String result= readData(is, "GBK");//设置解码格式
conn.disconnect();//断开连接