【对接抖店平台】 05测试版店铺400中文转码问题 Java版 工具型开发

这两天一直没更新,可能心急的小伙伴已经火急火燎了。
先给大家说声抱歉,因为公司研发任务很重,也写这个总结也挤着时间写的。

关于这一次总结,中文转码问题

笔者刚碰到这个时候,也是一脸蒙蔽,因为使用的是

public String doHttpGet(String httpURL)throws IOException{
		
		URLConnection connection = new URL(httpURL).openConnection();
		connection.setRequestProperty("Charset", "UTF-8");//
		HttpURLConnection httpUrlConnection = (HttpURLConnection) connection;
}

get方式做的请求处理,而这里在执行请求时,却报了400的错误,
可是将httpURL放在浏览器上又能执行,但是如果是httpURL没有中文,只包含数字和英文的字符串就不会报400的错误,所以笔者最终定位,这是一个关于中文转码的问题。

也是经历挫折,虽然知道是中文乱码,可是对于最终定位在格式转换的位置,也是测试了很久。最终定位在组装httpurl组装前进行中文转码。

param=URLEncoder.encode(param, "UTF-8");

因为签名里是不需要转码的,原因可能是签名已经经过了md5加密。

有的小伙伴可能觉得笔者说的,听得云里雾里,没关系,笔者这里在给大家捋一遍!还是从httpurl的组装开始说起!

调接抖店接口:
协议名 + 域名
https://openapi-fxg.jinritemai.com
协议名 + 域名 + 路径名
https://openapi-fxg.jinritemai.com/oauth2/access_token
协议名 + 域名 + 路径名 + 参数
https://openapi-fxg.jinritemai.com/oauth2/access_token
?app_id=KEY&app_secret=SECRET&code=CODE&grant_type=authorization_code

示例2

https://openapi-fxg.jinritemai.com/product/getGoodsCategory?param_json=		
{"cid":"12","page":"1"}&method=product.getGoodsCategory&app_key=123456780
&timestamp=2011-06-1613:23:30&v=2&sign=ab3387e5&access_token=xxxxxxxx

协议名  + 域名
https://openapi-fxg.jinritemai.com


协议名  + 域名 + 路径名 
https://openapi-fxg.jinritemai.com/product/getGoodsCategory

协议名  + 域名 + 路径名 +参数
https://openapi-fxg.jinritemai.com/product/getGoodsCategory
?param_json={"cid":"12","page":"1"}
&method=product.getGoodsCategory&app_key=123456780&timestamp=2011-06-16 


这里可以知道是固定的!

协议名  + 域名
https://openapi-fxg.jinritemai.com

+ 路径名 +参数 ==>都是变量

参数复杂度,就有拼接,安全,顺序,业务等数据处理


参数封装==>

参数拆分

	param =?method+app_key+access_token+timestamp+v+param_json+sign

	1.其中 method 需要调用的方法 可以快速获取  		已知
	2.app_key抖店为工具型对接分配的独立app_key 		已知
	3.access_token序号code换取,或者refresh_token刷新	已知
	4.timestamp当前时间戳					已知
	5.v当前使用的API协议版本号				已知
	6.param_json就是需要向抖店提交的数据                    需要处理
	7.sign结合param_json,timestamp,v等获取		需要处理
	8.将param完整拼接起来放到 
		url=协议名+域名+param
	9.使用驱动或者框架之类的方法调用执行URL请求

	10.对请求返回的结果进行处理。
	
	依次从1-10就完成了一个闭环的第三方抖音请求的调用!

	
	综上我们把要处理的重要阶段拿出来.
	param_json
	sign

	这两个的重要阶段,就是必须面对的参数处理。
	
		param_json:有规则
		sign:有规则
			
	param_json:param_json的组装是为了sign的准备!
	按sign的要求来组装原数据。
	
	sign:有规则,按照规则来就好了!

这样来看,对于对接抖店,大体上是没什么问题了,思路框架已经确定,剩下要做的就是参数传输!

也就是建实体类,赋值绑定之类的。按照sign"k":"v"做键值绑定。格式化处理以及组装好sign后的签名加密。

实际上整个对接抖店调用就是已经完成了!

剩下都是业务需求的完善!

从上面看,其实对于sign签名的形成几乎是可以确定了签名的里面不需要转码,而其他地方是需要进行转码的!但不全都要需要转码!

也就是从
域名+路径名 不需要转码

那么参数呢?

	param =?method+app_key+access_token+timestamp+v+param_json+sign

下面的参数就是需要转码的,小伙伴们就要注意了。
method+app_key+access_token+timestamp+v+param_json

大家可以把method+app_key+access_token+timestamp+v+param_json都放在下面的代码进行转码

try {
		method=URLEncoder.encode(method, "UTF-8");
	} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
	}

但是要注意这个需要做异常处理。

使用这个中文转码之后呢,就代码就不会再报400错误了。

最后还是说一下顺序,转码的位置再获取签名加密后,组装httpurl前。

笔者以后会持续更新更多,更全面的 抖店对接。点波关注不迷路哟。

最后,老规矩,说的不好,请在评论区留言!
觉得有收获的一键三连别忘了(点赞,收藏,分享)
继续更新中。。。下期商品发布流程。
谢谢大家的关注和陪伴,欢迎留言和鼓励

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值