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请求 传参和接收的主要内容,如果未能解决你的问题,请参考以下文章

Postman 串行传参和动态传参详解

vue中路由(router)的path与name传参和接收方式

flask四:URL两种传参方式(路径传参和get传参)

scrapy入门请求传参和中间件

微信小程序 功能函数 点击传参和页面

第五章 shell函数的定义执行传参和递归函数