java请求http服务-参数是@RequestBody String  resultJson 类型

java请求http服务-参数是@RequestBody String resultJson 类型

    正在检查是否收录...
一言准备中...

当对方的接口参数是@RequestBody类型时如何调用。

 

1、对方controller接口写发如下:

 @PostMapping(value = "/test") @ResponseBody public StringresultBack(@RequestBody String resultJson) { return "helloWorld"; } 

2、Apipost的调用方式如下:

3、用java代码调用对方接口方法

(1)引入依赖

<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.10</version> </dependency> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> 

 (2)调用方法

 /** * @param httpUrl 请求的url * @param jsonParam 原始JSON字符串参数 * @return 响应结果 */ public String doPostJson(String httpUrl, String jsonParam) { HttpURLConnection connection = null; InputStream is = null; OutputStream os = null; BufferedReader br = null; String result = null; try { URL url = new URL(httpUrl); // 通过远程url连接对象打开连接 connection = (HttpURLConnection) url.openConnection(); // 设置连接请求方式 connection.setRequestMethod("POST"); // 设置连接主机服务器超时时间:15000毫秒 connection.setConnectTimeout(15000); // 设置读取主机服务器返回数据超时时间:60000毫秒 connection.setReadTimeout(60000); // 允许向服务器输出数据 connection.setDoOutput(true); // 允许从服务器读取数据 connection.setDoInput(true); // 设置Content-Type为application/json connection.setRequestProperty("Content-Type", "application/json;"); // 如果需要设置其他请求头,如Authorization,可以在这里添加 // connection.setRequestProperty("Authorization", "Bearer your_token_here"); // 检查JSON参数是否为空 if (jsonParam == null || jsonParam.trim().isEmpty()) { throw new IllegalArgumentException("JSON参数不能为空"); } // 通过连接对象获取一个输出流 os = connection.getOutputStream(); // 写入JSON参数,指定UTF-8编码 os.write(jsonParam.getBytes("UTF-8")); os.flush(); // 检查响应状态码 int responseCode = connection.getResponseCode(); if (responseCode == 200) { is = connection.getInputStream(); } else { // 非200状态码使用错误流 is = connection.getErrorStream(); } // 处理响应流 if (is != null) { br = new BufferedReader(new InputStreamReader(is, "UTF-8")); StringBuffer sbf = new StringBuffer(); String temp; while ((temp = br.readLine()) != null) { sbf.append(temp); } result = responseCode == 200 ? sbf.toString() : "Error (code: " + responseCode + "): " + sbf.toString(); } else { result = "No response from server, code: " + responseCode; } } catch (MalformedURLException e) { e.printStackTrace(); result = "URL格式错误: " + e.getMessage(); } catch (IllegalArgumentException e) { e.printStackTrace(); result = "参数错误: " + e.getMessage(); } catch (IOException e) { e.printStackTrace(); result = "IO异常: " + e.getMessage(); } finally { // 关闭资源 if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } if (os != null) { try { os.close(); } catch (IOException e) { e.printStackTrace(); } } if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } // 断开连接 if (connection != null) { connection.disconnect(); } } return result; } 

 



  • 本文作者:WAP站长网
  • 本文链接: https://wapzz.net/post-26986.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.7W+
9
1
2
WAP站长官方

shellcode分离加载实现CS免杀上线

上一篇

[深度学习] 大模型学习3下

下一篇
评论区
内容为空

这一切,似未曾拥有

  • 复制图片
按住ctrl可打开默认菜单