欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java http请求工具类

程序员文章站 2023-01-11 18:11:08
该工具类可以调用POST请求或者Get请求,参数以Map的方式传入,支持获获取返回值,返回值接收类型为String HttpRequestUtil.java package com.util; import java.io.BufferedReader;import java.io.IOExcept ......

该工具类可以调用post请求或者get请求,参数以map的方式传入,支持获获取返回值,返回值接收类型为string

 httprequestutil.java

package com.util;

import java.io.bufferedreader;
import java.io.ioexception;
import java.io.inputstreamreader;
import java.io.printwriter;
import java.util.list;
import java.util.map;

import net.sf.json.jsonobject;

/**
* 用于模拟http请求中get/post方式
*
* @author https://www.mojxtang.club/
* @date 2017年8月24日
*/
public class httprequestutil {
/**
* 发送get请求
*
* @param url 目的地址
* @param parameters 请求参数,map类型。
* @return 远程响应结果
*/
public static string sendget(string url, map<string, string> parameters) {
string result = "";
bufferedreader in = null;// 读取响应输入流
stringbuffer sb = new stringbuffer();// 存储参数
string params = "";// 编码之后的参数
try {
// 编码请求参数
if (parameters.size() == 1) {
for (string name : parameters.keyset()) {
sb.append(name).append("=").append(java.net.urlencoder.encode(parameters.get(name), "utf-8"));
}
params = sb.tostring();
} else {
for (string name : parameters.keyset()) {
sb.append(name).append("=").append(java.net.urlencoder.encode(parameters.get(name), "utf-8"))
.append("&");
}
string temp_params = sb.tostring();
params = temp_params.substring(0, temp_params.length() - 1);
}
string full_url = url + "?" + params;
system.out.println(full_url);
// 创建url对象
java.net.url connurl = new java.net.url(full_url);
// 打开url连接
java.net.httpurlconnection httpconn = (java.net.httpurlconnection) connurl.openconnection();
// 设置通用属性
httpconn.setrequestproperty("accept", "*/*");
httpconn.setrequestproperty("connection", "keep-alive");
httpconn.setrequestproperty("user-agent", "mozilla/4.0 (compatible; msie 8.0; windows nt 6.1)");
// 建立实际的连接
httpconn.connect();
// 响应头部获取
map<string, list<string>> headers = httpconn.getheaderfields();
// 遍历所有的响应头字段
for (string key : headers.keyset()) {
system.out.println(key + "\t:\t" + headers.get(key));
}
// 定义bufferedreader输入流来读取url的响应,并设置编码方式
in = new bufferedreader(new inputstreamreader(httpconn.getinputstream(), "utf-8"));
string line;
// 读取返回的内容
while ((line = in.readline()) != null) {
result += line;
}
} catch (exception e) {
e.printstacktrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (ioexception ex) {
ex.printstacktrace();
}
}
return result;
}

/**
* 发送post请求
*
* @param url 目的地址
* @param parameters 请求参数,map类型。
* @return 远程响应结果
*/
public static string sendpost(string url, map<string, string> parameters) {
string result = "";// 返回的结果
bufferedreader in = null;// 读取响应输入流
printwriter out = null;
stringbuffer sb = new stringbuffer();// 处理请求参数
string params = "";// 编码之后的参数
try {
// 编码请求参数
if (parameters.size() == 1) {
for (string name : parameters.keyset()) {
sb.append(name).append("=").append(java.net.urlencoder.encode(parameters.get(name), "utf-8"));
}
params = sb.tostring();
} else {
for (string name : parameters.keyset()) {
sb.append(name).append("=").append(java.net.urlencoder.encode(parameters.get(name), "utf-8"))
.append("&");
}
string temp_params = sb.tostring();
params = temp_params.substring(0, temp_params.length() - 1);
}
// 创建url对象
java.net.url connurl = new java.net.url(url);
// 打开url连接
java.net.httpurlconnection httpconn = (java.net.httpurlconnection) connurl.openconnection();
// 设置通用属性
httpconn.setrequestproperty("accept", "*/*");
httpconn.setrequestproperty("connection", "keep-alive");
httpconn.setrequestproperty("user-agent", "mozilla/4.0 (compatible; msie 8.0; windows nt 6.1)");
// 设置post方式
httpconn.setdoinput(true);
httpconn.setdooutput(true);
// 获取httpurlconnection对象对应的输出流
out = new printwriter(httpconn.getoutputstream());
// 发送请求参数
out.write(params);
// flush输出流的缓冲
out.flush();
// 定义bufferedreader输入流来读取url的响应,设置编码方式
in = new bufferedreader(new inputstreamreader(httpconn.getinputstream(), "utf-8"));
string line;
// 读取返回的内容
while ((line = in.readline()) != null) {
result += line;
}
} catch (exception e) {
e.printstacktrace();
} finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (ioexception ex) {
ex.printstacktrace();
}
}
return result;
}

public static string sendposttest(string url, jsonobject json) {
string result = "";// 返回的结果
bufferedreader in = null;// 读取响应输入流
printwriter out = null;
string params = "";// 编码之后的参数
try {
// 编码请求参数
params = json.tostring();
// 创建url对象
java.net.url connurl = new java.net.url(url);
// 打开url连接
java.net.httpurlconnection httpconn = (java.net.httpurlconnection) connurl.openconnection();
// 设置通用属性
httpconn.setrequestproperty("accept", "*/*");
httpconn.setrequestproperty("connection", "keep-alive");
httpconn.setrequestproperty("user-agent", "mozilla/4.0 (compatible; msie 8.0; windows nt 6.1)");
// 设置post方式
httpconn.setdoinput(true);
httpconn.setdooutput(true);
// 获取httpurlconnection对象对应的输出流
out = new printwriter(httpconn.getoutputstream());
// 发送请求参数
out.write(params);
// flush输出流的缓冲
out.flush();
// 定义bufferedreader输入流来读取url的响应,设置编码方式
in = new bufferedreader(new inputstreamreader(httpconn.getinputstream(), "utf-8"));
string line;
// 读取返回的内容
while ((line = in.readline()) != null) {
result += line;
}
} catch (exception e) {
e.printstacktrace();
} finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (ioexception ex) {
ex.printstacktrace();
}
}
return result;
}
}

 

更多文章可以访问我的个人博客: