首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python接口测试之urllib.parse.urlencode

引言   今天将的接口测试中常见的一种请求数据类型,key=value形式,并且以urlencode编码方式去请求。可能有些人从未遇到过,因为如果接口没有这样定义或解析,是不需要这样操作。   ...背景   我就拿我实际工作中项目中的接口来讲,如图:   可以看出来,这个接口的body数据是以key=value形式,并且进行了urlencode编码,body的数据类型是bytes,而不是str。...   对于上图的http来分析,我们需要转码,就要使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作。   ...方法如下: urllib.parse.urlencode(values)   以上红色框框,就是最重要的3点,做好了,就可以正常调用这个接口。最终获取业务数据。   ...() 不能对string编码,只能对dict类型编码 urllib.parse.urlencode() #将dict类型参数转化为query_string格式(key=value&key=value),

2.1K30

Spring-RestTemplate之urlencode参数解析异常全程分析

因为不知道服务端的实现,所以再事后定位到这个问题之后,反推了一个服务端可能实现方式 1. web服务模拟 模拟一个接口,要求必须传入accessKey,且这个参数必须和我们定义的一样(模拟身份标志,用户请求必须带上自己的...问题定位 同样的url,两种不同的包返回结果不一样,自然而然的就会想到对比下两个的实现方式了,看看哪里不同;如果对两个包的源码不太熟悉的话,想一下子定位都问题,并不容易,对这两个源码,我也是不熟的,不过因为巧和...,没有深入到底层的实现就发现了疑是问题的关键点所在 首先看的RestTemplate的发起请求的逻辑,如下(下图中有关键点,单独看不太容易抓到) ?...从上图很明显可以看出,现编码之后的和我们URLEncode的结果不一样,加号没有被编码, 我们调用jdk的url解码,发现将上面编码后的内容解码出来,+号没了 ?...所以问题的原因也找到了,RestTemplate中首先url编码解码的逻辑和URLEncode/URLDecode不一致导致的 4.

71820

Spring-RestTemplate之urlencode参数解析异常全程分析

因为不知道服务端的实现,所以再事后定位到这个问题之后,反推了一个服务端可能实现方式 1. web服务模拟 模拟一个接口,要求必须传入accessKey,且这个参数必须和我们定义的一样(模拟身份标志,用户请求必须带上自己的...问题定位 同样的url,两种不同的包返回结果不一样,自然而然的就会想到对比下两个的实现方式了,看看哪里不同;如果对两个包的源码不太熟悉的话,想一下子定位都问题,并不容易,对这两个源码,我也是不熟的,不过因为巧和...,没有深入到底层的实现就发现了疑是问题的关键点所在 首先看的RestTemplate的发起请求的逻辑,如下(下图中有关键点,单独看不太容易抓到) [image] 接下来再去debug HttpClient...接下来我们改一下请求的url参数,再执行一下上面的过程,看下编码之后的参数长啥样 [image] 从上图很明显可以看出,现编码之后的和我们URLEncode的结果不一样,加号没有被编码, 我们调用jdk...的url解码,发现将上面编码后的内容解码出来,+号没了 [image] 所以问题的原因也找到了,RestTemplate中首先url编码解码的逻辑和URLEncode/URLDecode不一致导致的 4

2.8K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券