java后端调用第三方接口,(往header和body中的参数传参)

最近被分配干大华摄像头,需要调用第三方接口。java如何调用对方http接口(header和body中的参数传参)

之前调用的钉钉第三方接口都是普通传参,很简单。这次是往请求头和请求体里面传参,做一下记录。

//从配置文件中读取路径  可以写死     "http://。。。。。。。"
        String serverURL = "https://www.cloud-dahua/liveList";
        StringBuffer sbf = new StringBuffer();
        String strRead = null;
        URL url = new URL(serverURL);
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");//请求post方式
        connection.setDoInput(true);
        connection.setDoOutput(true);
        //header内的的参数在这里set。||connection.setRequestProperty("健, "值");
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("Authorization", "Bearer 59e0-9fcc-c3faea0e2a6c");
        connection.connect();
        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
        //body参数在这里put到JSONObject中
        JSONObject parm = new JSONObject();
        parm.put("pageNum", 1);
        parm.put("pageSize", 2);
        parm.put("storeId", 001);
        writer.write(parm.toString());
        writer.flush();
        InputStream is = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
        while ((strRead = reader.readLine()) != null) {
            sbf.append(strRead);
            //sbf.append("\r\n");
        }
        reader.close();
        connection.disconnect();
        String results = sbf.toString();

年纪轻轻,不卑不亢,干就完了!

  • 7
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
java后端调用第三方接口并携带文件参数的解决方案是使用MultipartFile来携带文件参数。您可以使用以下步骤来实现: 1. 导入所需的依赖项,包括spring-boot-starter-web和spring-boot-starter-websocket。 2. 在您的Controller类创建一个POST请求的处理方法。在该方法,将MultipartFile参数添加到方法的参数列表,以接收文件。 3. 使用RestTemplate或者HttpClient等HTTP客户端库创建一个HTTP请求。 4. 将文件转换为字节数组,并将其添加到请求体。确保您设置正确的Content-Type头部。 5. 如果需要,您还可以添加其他请求参数,例如token。 6. 发送请求并获取响应。 以下是一个简单的示例代码片段,演示了如何使用MultipartFile发送文件参数的POST请求: ```java @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file, @RequestParam("token") String token) { RestTemplate restTemplate = new RestTemplate(); String url = "https://api.example.com/upload"; // 将文件转换为字节数组,并设置Content-Type头部 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); byte[] fileBytes; try { fileBytes = file.getBytes(); } catch (IOException e) { // 处理文件读取错误 return "文件读取错误"; } // 创建请求体 HttpEntity<byte[]> requestEntity = new HttpEntity<>(fileBytes, headers); // 添加其他请求参数,例如token MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>(); requestBody.add("token", token); // 发送请求 ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, requestBody); // 处理响应 if (response.getStatusCode() == HttpStatus.OK) { return "文件上传成功"; } else { return "文件上传失败"; } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

only-qi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值