【JAVA】HttpUtil 如何使用 application/x-www-form-urlencoded 传输List集合,等

Http如何使用 application/x-www-form-urlencoded 传输List集合

需求说明:
遇到一个API接口文档,必须要求 所有接口按 “application/x-www-form-urlencoded” 方式传输,接口文档又存在 List集合 数组等等; “application/json;charset=UTF-8” 常见的很,这就不描述了;

PostMan 请求示例

如果会使用postman的小伙伴,可以试试调试,如下图
在这里插入图片描述
接口文档,中的 order_detail 就是一个List对象; 相信有一定代码功底的人,是可以看懂的,这就不描述了;

JAVA 请求示例,代码HttpUtil

	Map<String, String> header = new HashMap<>();
	//状态
	header.put("Content-Type", "application/x-www-form-urlencoded");
	//授权
	header.put("Authorization", "Basic " + thirdPartyStore.getAuthorizationContent());

	//body内容
	Map<String, Object> body = new HashMap<>();
	//订单ID
	body.put("order_id", orderId);
	//物流公司名称
	body.put("order_detail[0].ship_type_name", thirdPartyExpressCompany.getName());
	//运单号
	body.put("order_detail[0].waybill_no", expressCompanyNumber);
	//商品详情
	for (int i = 0; i < thirdPartyStoreOrderDetails.size(); i++) {
		//key
		String key = "order_detail[0].product_detail[" + i + "].";
		//商品详情
		ThirdPartyStoreOrderDetail thirdPartyStoreOrderDetail = thirdPartyStoreOrderDetails.get(i);
		body.put(key + "product_id", thirdPartyStoreOrderDetail.getBarCode());
		body.put(key + "product_name", thirdPartyStoreOrderDetail.getName());
		body.put(key + "quantity", thirdPartyStoreOrderDetail.getCount());
	}
	System.out.println(JSONObject.toJSONString(body));
	//访问
	String rsp = HttpRequest.post(BenlaiUtil.routerUrl + "/xx").addHeaders(header).form(body).execute().body();
	if (rsp == null) {
		return ThirdPartyLogisticsReturn.error(thirdPartyStore.getName() + "访问异常");
	}

部分参数,是项目中的,不要全额代入进去,这里只提供一个示例;一个理解方式,如何传输;

HttpRequest.post 这个工具类,使用的是 【cn.hutool】工具类,如果要使用的小伙伴,maven导入下面的 jar; 最新版的请访问 官方文档提供地址 http://hutool.cn/docs/#/

   <dependency>
          <groupId>cn.hutool</groupId>
          <artifactId>hutool-all</artifactId>
          <version>5.8.16</version>
      </dependency>
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值