package com.zto.guaranteedoor.utils;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.http.client.HttpClient;
/**
* 和HTTP相关的操作
*
* @author
*
*/
public class HttpToken {
/**
*
* @Title: doPost
* @Description: post请求
* @param reqUrl
* @param parameters
* @return String
*/
public static String doPost(String reqUrl, Map<String, String> parameters, String token) {
HttpURLConnection urlConn = null;
try {
urlConn = _sendPost(reqUrl, parameters, token);
String responseContent = _getContent(urlConn);
return responseContent.trim();
} finally {
if (urlConn != null) {
urlConn.disconnect();
}
}
}
private static HttpURLConnection _sendPost(String reqUrl, Map<String, String> parameters, String token) {
HttpURLConnection urlConn = null;
try {
StringBuffer params = new StringBuffer();
if (parameters != null) {
for (Iterator<String> iter = parameters.keySet().iterator(); iter.hasNext();) {
String name = iter.next();
String value = parameters.get(name);
params.append(name + "=");
params.append(URLEncoder.encode(value, "UTF-8"));
if (iter.hasNext())
params.append("&");
}
}
URL url = new URL(reqUrl);
urlConn = (HttpURLConnection) url.openConnection();
if(!"".equals(token) && token !=null) {
urlConn.addRequestProperty("token", token);
}
urlConn.setRequestMethod("POST");
urlConn.setConnectTimeout(5000);// (单位:毫秒)jdk
urlConn.setReadTimeout(5000);// (单位:毫秒)jdk 1.5换成这个,读操作超时
urlConn.setDoOutput(true);
byte[] b = params.toString().getBytes();
urlConn.getOutputStream().write(b, 0, b.length);
urlConn.getOutputStream().flush();
urlConn.getOutputStream().close();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
return urlConn;
}
private static String _getContent(HttpURLConnection urlConn) {
try {
String responseContent = null;
InputStream in = urlConn.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf = System.getProperty("line.separator");
while (tempLine != null) {
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();
return responseContent;
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
}
Http 带token的请求
最新推荐文章于 2025-02-12 13:20:06 发布
本文深入解析了使用Java进行HTTP Token操作的方法,包括POST请求的发送及响应内容的获取。通过具体代码示例,展示了如何设置请求参数、处理输入输出流以及使用URLEncoder进行编码。
4143

被折叠的 条评论
为什么被折叠?



