HttpRequest.post(url)请求设置及调用另一个服务的接口

一、首先先在数据库里的对应参数字段里加入需要调用的对应地址

第一个对应就是paramname,第二个对应paramvalue

二、在所需要调用接口的项目里编写方法

1、首先显示get请求

@GetMapping("/getSitePageList")
    public String getSitePageList (@RequestParam("sitename") String sitename,@RequestParam("userid") String userid,@RequestParam("valid") String valid){
        try {
            String url = sysconfService.getSysConfByName("wzagrouplist");
            if (ObjectUtil.isNotEmpty(url)) {
                String pathresult = url + "?" + "userid="+userid + "&" +"sitename=" + sitename + "&"  + "valid=" + valid;
                String result = HttpUtil.get(pathresult);
                if (ObjectUtil.isNotEmpty(result)) {
                    return result;
                }
            }
            return null;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
sysconfService.getSysConfByName("wzagrouplist");就是获取对应的数据库里的paramvalue,通过paramname去查询;
String pathresult然后拼接我们的地址,可以查看被调用另一个项目的接口参数,然后把所需要的参数拼接到此处。

然后通过HttpUtil去get到对应项目的接口所获取的信息放到result里,最后返回result给前端

2、post请求

@PostMapping("/updateWzaSiteAudioparamById")
    public String updateWzaSiteAudioparamById (@RequestBody WzaGroupSiteDto wzaGroupSiteDto, HttpServletResponse response){
        String url = sysconfService.getSysConfByName("wzagroupsiteset");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("id",wzaGroupSiteDto.getId());
        jsonObject.put("vol",wzaGroupSiteDto.getVol());
        jsonObject.put("per",wzaGroupSiteDto.getPer());
        jsonObject.put("spd",wzaGroupSiteDto.getSpd());
        jsonObject.put("voicecontent",wzaGroupSiteDto.getVoicecontent());
        jsonObject.put("style",wzaGroupSiteDto.getStyle());
        jsonObject.put("version",wzaGroupSiteDto.getVersion());
        Map<String, String > heads = new HashMap<>();
        heads.put("Content-Type", "application/json;charset=UTF-8");
        if (ObjectUtil.isNotEmpty(url)){
            String result = HttpRequest.post(url)
                    .headerMap(heads, false)
                    .body(jsonObject.toString()).timeout(30*1000).execute().body();
            if(ObjectUtil.isNotEmpty(result)){
                return result;
            }
        }
        return null;
    }

前部分与get一样,这里我们需要创建对应的dto来获取相关添加或修改的参数信息,然后用json对象接收,用map来设置contenttype类型,然后判断url,通过HttpRequest.post来调用post在另一个项目中对应的方法,最后返回result。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HttpRequest.post方法传递参数的具体调用过程可以参考以下代码示例:\[1\] ```java String url = configPath.getxxx(); JSONObject map = new JSONObject(); map.put("pmsTypeId", xxx.getxxx()); map.put("hotelCode", xxx.getxxx()); map.put("roomNo", xxx.getxxx()); map.put("orderCode", xxx.getxxx()); String response = OkHttpUtil.doPostHttpRequest(url, map.toString()); ``` 在这个示例中,首先通过configPath.getxxx()方法获取请求URL,然后创建一个JSONObject对象map,将需要传递的参数以键值对的形式放入map中。接下来,使用OkHttpUtil.doPostHttpRequest方法发送POST请求,将URL和参数map转换为字符串形式传递给该方法。最后,将返回的响应结果保存在response变量中。 关于为什么之前使用POST方法访问新接口时提示传递参数为空的问题,可能有多种原因。其中一个可能的原因是接口的参数格式不正确,导致无法正确解析参数。另外,网络上的接口请求测试工具中存在两种参数形式的原因可能是因为不同的接口使用了不同的参数传递方式,例如一种是通过请求体传递参数,另一种是通过URL参数传递。 在HTTP请求中,请求头的content-type字段用于指定请求体的媒体类型。具体的content-type值可以参考HTTP头字段列表\[3\]。根据具体的需求和接口要求,可以选择合适的content-type值来正确传递参数。 #### 引用[.reference_title] - *1* [发送HTTP的POST请求调用第三方接口交互,传递必要的参数](https://blog.csdn.net/weixin_39654286/article/details/86365421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [HTTP请求POST参数到底应该怎么传?](https://blog.csdn.net/j550341130/article/details/82012961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WAZYY0619

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值