Java 向指定URL发送POST请求,请求参数为json字符串

/**
     * 向指定 URL 发送POST方法的请求
     *
     * @param url
     * 发送请求的 URL
     * @param jsonData
     * 请求参数,请求参数应该是Json格式字符串的形式。
     * @return 所代表远程资源的响应结果
     */
    public static String sendJsonPost(String url, String jsonData) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            HttpClient client = new HttpClient(); // 客户端实例化
            PostMethod postMethod = new PostMethod(url); // 请求方法post,可以将请求路径传入构造参数中

            postMethod.addRequestHeader("Content-type", "application/json; charset=utf-8");
            //postMethod.addRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiJ9.eyJueDpwbHVnaW5fc2VydmVyOmFwaTpsb2dpbl90b2tlbnM6IjoiZDE4ZjFiNjgtNDAxOS00OWI2LWI4NWEtYjY1Y2ZjYjU0OGJmIn0.yx6vZZNNqIPDepvGaGea0hqCWNEAF_ftTL70mghajB3-QwHpxp2rmPnLHNvxE9YsjQMLgEk68MDsKvBzVMkIzg");
            byte[] requestBytes = jsonData.getBytes("utf-8"); // 将参数转为二进制流

            InputStream inputStream = new ByteArrayInputStream(requestBytes, 0,requestBytes.length);
            // 请求体
            RequestEntity requestEntity = new InputStreamRequestEntity(inputStream,requestBytes.length, "application/json; charset=utf-8");
            postMethod.setRequestEntity(requestEntity); // 将参数放入请求体
            int i = client.executeMethod(postMethod); // 执行方法
            System.out.println("请求状态"+i);

            // 这里因该有判断的,根据请求状态判断请求是否成功,然后根据第三方接口返回的数据格式,解析出我们需要的数据
            byte[] responseBody = postMethod.getResponseBody(); // 得到相应数据
            String s = new String(responseBody);
            System.out.println(s);
        } 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();
            }
        }

        return result;
    }

需要引入的jar 

<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在发送axios post请求时,可以使用`json`格式来传递参数。可以在请求配置中指定`headers`属性,并设置`Content-Type`为`application/json`。参数可以作为`data`属性传递,例如: ``` axios.post('/api/data', { name: 'John Doe', age: 30 }, { headers: { 'Content-Type': 'application/json' } }) ``` 或者你可以这样 ``` axios({ method: 'post', url: '/api/data', data: { name: 'John Doe', age: 30 }, headers: { 'Content-Type': 'application/json' } }); ``` ### 回答2: axios是一种基于Promise的HTTP客户端,用于发送HTTP请求到服务器。它支持各种浏览器和Node.js平台,能够处理GET、POST、PUT、DELETE、PATCH等多种请求方式。axos的API简单易用,是现代Web开发中必不可少的工具之一。 当我们需要向服务器发送POST请求时,经常需要传递JSON格式的参数数据。axios允许我们在请求中以JSON格式传递参数数据,以下是使用axios post请求传递JSON参数的步骤: 1.引入axios库: 在JavaScript文件中加入以下代码: import axios from 'axios'; 2.定义请求参数: ``` const requestData = { name: '小明', age: 18, address: '北京市' }; ``` 3.设置请求头: ``` const config = { headers: { 'Content-Type': 'application/json' } }; ``` 4.发起POST请求: ``` axios.post('http://xxxxxx/api/postData', JSON.stringify(requestData), config) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); ``` 以上代码中,我们首先定义了一个请求参数requestData,其格式为JSON,包含了名称、年龄和地址等字段。接下来,我们设置请求头的Content-Type为application/json,表示发送的数据为JSON格式。最后,我们使用axios.post方法发送POST请求,第一个参数请求URL地址,第二个参数请求的数据,使用JSON.stringify将请求参数转化成JSON字符串格式,第三个参数请求头。 在接收到服务器响应后,then()方法会返回响应内容。我们可以通过response.data获取服务器返回的结果。如果请求失败,catch()方法会捕获错误信息,我们可以通过error输出异常信息。 总的来说,通过axios post请求参数json十分简单,只需要设置请求头为application/json,将参数转成json字符串即可。在使用axios时,需要了解其它参数选项的详细用法,以便更好地调用API进行开发工作。 ### 回答3: Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js。可以通过axios.post()方法将JSON数据传给服务器。下面是axios post请求参数json的步骤: 1.引入axios库 首先,需要在代码中引入axios库,可以通过npm或cdn方式引入。 2.设置请求头 通过设置axios.post请求头Content-Type为application/json,告诉服务器发送的数据是JSON数据。 3.构建发送数据 可以使用JavaScript对象构建发送JSON数据。为了能够正常传递JSON数据,必须将数据转换成JSON字符串。可以使用JSON.stringify()方法将数据转换为JSON字符串。 4.发送请求 使用axios.post()方法发送请求,并传递参数,其中第一个参数URL地址,第二个参数是要发送的数据对象。 示例代码如下: ``` import axios from 'axios'; // 设置请求头Content-Type为application/json axios.defaults.headers.post['Content-Type'] = 'application/json'; // 构建发送数据 const data = { name: 'Alice', age: 18, email: 'alice@gmail.com' }; const jsonData = JSON.stringify(data); // 发送请求 axios.post('/api/user', jsonData) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); ``` 在以上代码中,我们构建了一个JSON对象data,并将其转换成JSON字符串jsonData,然后通过axios.post()方法将其发送到服务器的/api/user接口。如果请求成功,服务器会返回响应数据,通过response.data获取响应数据。在请求过程中如果出现错误,则通过catch语句捕获错误消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值