摘要 看完本文可以知道,使用java原生编写get/post请求的步骤,进行网络请求时应该注意的地方。 这里使用java自带的HttpUrlConnection对象进行网络请求, 请求步骤大致分为五步 1、创建URL对象 2、打开URL连接 3、设置通用属性 4、建立实际的连接 5、读取返回的内容 正文 http网络请求中比较常用的请求方式有get和post请求,其它的如head, put, 以及自定义的OPTIONS等请求方式在这里不做讨论 java中使用的请求对象一般是HttpUrlConnection,其它框架封装的如httpClient,这个apache CommonsHttpClient项目已经不再被维护,随着java版本的更新,这个工具不推荐再使用了,而其他了,如okhttp,Retrofit2等网络请求框架主要使用于android端的网络请求,在服务器端进行网络请求使用自己简单封装的http工具类即可。 我们请求的地址需要使用URL对象将字符串地址进行封装即URL connURL = new URL(“http://www.xxxx./”)网络请求的步骤#GET请求 首先要对请求的参数进行中文编码 java.net.URLEncoder.encode(parameters.get(name), “UTF-8”) 否则服务器接收到的中文数据会变成乱码,这是人为的错误。 将编码的参数和url进行拼接形成真正的请求地址
String url = url + "?" + params
1、创建URL对象
URL connURL = new URL("http://www.xxxx./")
2、打开url链接获得HttpUrlConnection
HttpURLConnection httpConn = (HttpURLConnection) connURL.openConnection();
3、设置通用的属性, —-请求头部信息 也就是模仿浏览器的请求头部的信息 Connection、Accept、User-Agent、Cookie 等其它的请求头header信息
httpConn.setRequestProperty("Accept", "*/*");
Connection:表示是否需要持久链接值为“Keep-Alive ,持久链接可以减少下载的时间,但服务器必须要返回响应头Content-Length,返回内容的长度。 http的socket,要经过三次握手通信才能确保连接可用, http连接的两种方式:串行连接,持久连接持久连接的实现方式有两种:HTTP/1.0+的请求头Connection:keep-alive与HTTP/1.1的持久连接
串行连接:1、打开连接
2、请求
3、处理
4、响应
5、关闭连接
重复上面步骤持久连接:1、打开连接
2、请求
3、处理
4、响应
第二次直接到2操作,
发送请求
持久连接第一次请求后不会关闭连接,下次再发送请求时就不需要再建立连接了
参考资料