Http请求 传参和接收
Posted Java璐到底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http请求 传参和接收相关的知识,希望对你有一定的参考价值。
发送端:
package com.hwkj.bree.until;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import sun.net.www.protocol.http.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
public class HttpUtil {
public static void main(String[] args) {
//传入的参数
String datas="{id:1}";
String url="http://127.0.0.1:8008/hello";
String data=sendPostRequest(url,datas);
//请求回来的数据
System.out.println("响应结果:"+data);
}
public static String sendPostRequest(String url,String param){
HttpURLConnection httpURLConnection = null;
OutputStream out = null; //写
InputStream in = null; //读
int responseCode = 0; //远程主机响应的HTTP状态码
String result="";
try{
URL sendUrl = new URL(url);
httpURLConnection = (HttpURLConnection)sendUrl.openConnection();
//post方式请求
httpURLConnection.setRequestMethod("POST");
//设置头部信息
httpURLConnection.setRequestProperty("headerdata", "ceshiyongde");
//一定要设置 Content-Type 要不然服务端接收不到参数
httpURLConnection.setRequestProperty("Content-Type", "application/Json; charset=UTF-8");
//指示应用程序要将数据写入URL连接,其值默认为false(是否传参)
httpURLConnection.setDoOutput(true);
//httpURLConnection.setDoInput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setConnectTimeout(30000); //30秒连接超时
httpURLConnection.setReadTimeout(30000); //30秒读取超时
//传入参数
out = httpURLConnection.getOutputStream();
out.write(param.getBytes());
out.flush(); //清空缓冲区,发送数据
out.close();
responseCode = httpURLConnection.getResponseCode();
//获取请求的资源
BufferedReader br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(),"UTF-8"));
result =br.readLine();
}catch(Exception e) {
e.printStackTrace();
}
return result;
}
}
接收端:
@RestController
public class FilerController {
@PostMapping("hello")
public String Hello(HttpServletRequest request, HttpServletResponse response){
try {
//接收请求参数
InputStreamReader reader=new InputStreamReader(request.getInputStream());
BufferedReader buffer=new BufferedReader(reader);
String data=buffer.readLine();
System.out.println("传入参数:"+data);
//头部信息
//String header=request.getHeader("headerdata");
//System.out.println(header);
//向客户端发送数据
/* response.setContentType("text/javascript");
Student stu=new Student("liss","44");
Gson json=new Gson();
String jString=json.toJson(stu);
PrintWriter out=response.getWriter();
out.write(jString);*/
} catch (IOException e) {
e.printStackTrace();
}
return "hello word";
}
}
以上是关于Http请求 传参和接收的主要内容,如果未能解决你的问题,请参考以下文章