首页 > 代码库 > http协议发送json字符串请求
http协议发送json字符串请求
package post;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
public class DoTest {
/**
* 请求连接固定参数
* @param s 传参地址
*/
public static URLConnection getConnection(String s) throws IOException {
URL url = new URL(s);
URLConnection conn = url.openConnection();
conn.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
conn.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
return conn;
}
//请求地址带接口地址,请求参数是json字符串,举例如下:
//请求地址:http://127.0.0.1:8080/test/testone
//请求参数:{
// "testone": "testname1",
// "testtwo": "testname2"
// }
/**
* post请求
* @param s 传参地址和接口
* @param param 请求参数
* @return 返回响应结果
* @throws IOException 抛异常
*/
public static String reqPost(String s, String param) throws IOException {
System.out.println("请求地址:"+s);
System.out.println("请求参数:"+param);
String res = "";
URLConnection conn = getConnection(s); // POST要求URL中不包含请求参数
conn.setDoOutput(true); // 必须设置这两个请求属性为true,就表示默认使用POST发送
conn.setDoInput(true);
// 请求参数必须使用conn获取的OutputStream输出到请求体参数
PrintWriter out = new PrintWriter(conn.getOutputStream()); // 用PrintWriter进行包装
out.println(param);
out.flush(); // 立即充刷至请求体)PrintWriter默认先写在内存缓存中
try// 发送正常的请求(获取资源)
{
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "utf-8"));
String line;
while ((line = in.readLine()) != null) {
res += line + "\n";
}
} catch (Exception e) {
System.out.println("Get Error Occured!");
e.printStackTrace();
}
return res;
}
}
http协议发送json字符串请求