package com.test;
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class httpTest {
public static void main(String[] args) throws Exception {
//请求路径
String url = "http://localhost:8082/xxx/xxx";
String token = "123456";
//传递参数
JSONObject map = new JSONObject();
map.put("paramOne", "abcdefg");
map.put("paramTwo", "ABCDEFG");
//Get请求
doGet(url, token,"1");
//Post请求
doPost(url,token,map);
}
public static String doGet(String url,String token,String param){
BufferedReader in = null;
StringBuilder result = new StringBuilder();
try {
//GET请求直接在链接后面拼上请求参数
url = url + "?param=" + param;
URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
conn.setRequestMethod("GET");
//Get请求不需要DoOutPut
conn.setDoOutput(false);
conn.setDoInput(true);
//设置连接超时时间和读取超时时间
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
conn.setRequestProperty("token", token);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//连接服务器
conn.connect();
// 取得输入流,并使用Reader读取
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
//关闭输入流
finally{
try{
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
System.out.println("doGet-->" + result.toString());
return result.toString();
}
public static String doPost(String url,String token,JSONObject map){
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
//请求参数的格式 json
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("token", token);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(map);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
System.out.println("doPost-->" + result);
return result;
}
}
像第三方发送请求(带有token)(自用)
于 2022-03-14 14:36:22 首次发布