这篇文章主要给大家介绍了关于Java发起http请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在未来做项目中,一些功能模块可能会采用不同的语言进行编写。这就需要http请求进行模块的调用。那么下面,我将以Java为例,详细说明如何发起http请求。
一、GET与POST
-
GET和POST是HTTP的两个常用方法。
-
GET指从指定的服务器中获取数据
-
POST指提交数据给指定的服务器处理
1.GET方法
使用GET方法,需要传递的参数被附加在URL地址后面一起发送到服务器。
例如:http://121.41.111.94/submit?name=zxy&age=21
特点:
- GET请求能够被缓存
- GET请求会保存在浏览器的浏览记录中
- 以GET请求的URL能够保存为浏览器书签
- GET请求有长度限制
- GET请求主要用以获取数据
2.POST方法
使用POST方法,需要传递的参数在POST信息中单独存在,和HTTP请求一起发送到服务器。
例如:
POST /submit HTTP/1.1
Host 121.41.111.94
name=zxy&age=21
特点:
- POST请求不能被缓存下来
- POST请求不会保存在浏览器浏览记录中
- 以POST请求的URL无法保存为浏览器书签
- POST请求没有长度限制
实现代码
下面将Java发送GET/POST请求封装成HttpRequest类,可以直接使用。HttpRequest类代码如下:
`import` `java.io.BufferedReader;`
`import` `java.io.IOException;`
`import` `java.io.InputStreamReader;`
`import` `java.io.PrintWriter;`
`import` `java.net.URL;`
`import` `java.net.URLConnection;`
`import` `java.util.List;`
`import` `java.util.Map;`
`public` `class` `HttpRequest {
`
`/**`
`* 向指定URL发送GET方法的请求`
`*`
`* @param url`
`* 发送请求的URL`
`* @param param`
`* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。`
`* @return URL 所代表远程资源的响应结果`
`*/`
`public` `static` `String sendGet(String url, String param) {
`
`String result =` `""``;`
`BufferedReader in =` `null``;`
`try` `{
`
`String urlNameString = url +` `"?"` `+ param;`
`URL realUrl =` `new` `URL(urlNameString);`
`// 打开和URL之间的连接`
`URLConnection connection = realUrl.openConnection();`
`// 设置通用的请求属性`
`connection.setRequestProperty(``"accept"``,` `"*/*"``);`
`connection.setRequestProperty(``"connection"``,` `"Keep-Alive"``);`
`connection.setRequestProperty