Java模拟发送HTTP请求
- 2015-10-26 14:15:00
- admin 原创
- 3021
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.net.URLEncoder;
import java.util.List;
/**
* Created by XdaTk on 2014/12/21.
* <p/>
* HTTP请求工具类
*/
public class HTTPSend {
/**
* 发送get请求
*
* @param url 请求地址
* @param list 请求参数
* @return 请求结果
*
* @throws IOException
*/
public static String sendGet(String url, List<HTTPParam> list) throws IOException {
StringBuffer buffer = new StringBuffer(); //用来拼接参数
StringBuffer result = new StringBuffer(); //用来接受返回值
URL httpUrl = null; //HTTP URL类 用这个类来创建连接
URLConnection connection = null; //创建的http连接
BufferedReader bufferedReader = null; //接受连接受的参数
//如果存在参数,我们才需要拼接参数 类似于 localhost/index.html?a=a&b=b
if (list!=null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
buffer.append(list.get(i).getKey()).append("=").append(URLEncoder.encode(list.get(i).getValue(), "utf-8"));
//如果不是最后一个参数,不需要添加&
if ((i + 1) < list.size()) {
buffer.append("&");
}
}
url = url + "?" + buffer.toString();
}
//创建URL
httpUrl = new URL(url);
//建立连接
connection = httpUrl.openConnection();
connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
connection.setRequestProperty("connection", "keep-alive");
connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
connection.connect();
//接受连接返回参数
bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
bufferedReader.close();
return result.toString();
}
/**
* 发送Post请求
*
* @param url 请求地址
* @param list 请求参数
*
* @return 请求结果
*
* @throws IOException
*/
public static String sendPost(String url, List<HTTPParam> list) throws IOException {
StringBuffer buffer = new StringBuffer(); //用来拼接参数
StringBuffer result = new StringBuffer(); //用来接受返回值
URL httpUrl = null; //HTTP URL类 用这个类来创建连接
URLConnection connection = null; //创建的http连接
PrintWriter printWriter = null;
BufferedReader bufferedReader; //接受连接受的参数
//创建URL
httpUrl = new URL(url);
//建立连接
connection = httpUrl.openConnection();
connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
connection.setRequestProperty("connection", "keep-alive");
connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
connection.setDoOutput(true);
connection.setDoInput(true);
printWriter = new PrintWriter(connection.getOutputStream());
if (list!=null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
buffer.append(list.get(i).getKey()).append("=").append(URLEncoder.encode(list.get(i).getValue(), "utf-8"));
//如果不是最后一个参数,不需要添加&
if ((i + 1) < list.size()) {
buffer.append("&");
}
}
}
printWriter.print(buffer.toString());
printWriter.flush();
connection.connect();
//接受连接返回参数
bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
bufferedReader.close();
return result.toString();
}
}
package tk.xdatk.util;
public class HTTPParam {
//请求参数
private String key;
//参数值
private String value;
public HTTPParam() {
}
public HTTPParam(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
发表评论
文章分类
联系方式
联系人: | 郑州-小万 |
---|---|
电话: | 13803993919 |
Email: | 1027060531@qq.com |
QQ: | 1027060531 |
网址: | www.wanhejia.com |
Update Required
To play the media you will need to either update your browser to a recent version or update your Flash plugin.