java调用接口返回form表单_httpClient的post方法使用form格式数据调用接口

Http使用post调用接口,接口只接受form表单数据格式问题?

这个问题的关键是form表单提交的是数据格式是什么样子的,使用httpClient工具类时Header信息如何写。

会影响解决问题思路的因素:

1、         一致以来都是使用json数据格式调用接口的,form表单是什么格式一时向不起来。

2、         使用form表单数据情况,多是在前台页面使用form表单提交,或使用JavaScript中的FormData对象处理提交。如果是后台httpClient工具接口如何提交

解决思路:

ajax发送的data是个字典,是键值对的形式,在http的post请求过程中,把这种键值对转换成

k1=xxx&k2=xxx这种格式,并且会带上一个请求头:

content-type : application/x-www-form-urlencoded

2、 前台访问后台实际实现也是http协议,那使用谷歌的调试工具,模拟一个form表单提交看看请求header和Form Data的情况:

edf51549739682322c1fdc9cfabfdd06.png

点击“view source”显示的格式:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!可以使用Java中的HttpURLConnection或者HttpClient发送POST请求来调用接口获取图纸PDF。以下是使用HttpURLConnection的示例代码: ```java import java.io.*; import java.net.*; public class PDFDownloader { public static void main(String[] args) throws Exception { // 设置请求参数 String url = "http://example.com/api/download/pdf"; String requestData = "drawingId=12345"; // 以表单形式提交参数 byte[] requestDataBytes = requestData.getBytes("UTF-8"); // 创建连接 URL requestUrl = new URL(url); HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setUseCaches(false); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("Content-Length", "" + requestDataBytes.length); // 发送请求 OutputStream outputStream = connection.getOutputStream(); outputStream.write(requestDataBytes); outputStream.flush(); outputStream.close(); // 读取响应 InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); String line; StringBuilder responseData = new StringBuilder(); while ((line = reader.readLine()) != null) { responseData.append(line); } reader.close(); System.out.println("Response: " + responseData.toString()); inputStream.close(); // 将响应保存为PDF文件 FileOutputStream fileOutputStream = new FileOutputStream("drawing.pdf"); byte[] responseBytes = responseData.toString().getBytes("ISO-8859-1"); // 将字符串转换为字节数组 fileOutputStream.write(responseBytes); fileOutputStream.flush(); fileOutputStream.close(); } } ``` 在上面的示例代码中,我们首先设置了请求参数,然后创建了一个HttpURLConnection对象并发送了POST请求。最后,我们读取响应并将其保存为PDF文件。 请注意:以上代码仅供参考,请根据实际情况进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值