Python发送http请求时遇到问题总结

时间:2022-08-15 08:52:40

1、报错信息为“ERROR 'str' object has no attribute 'endwith'”,排查发现endswith方法名写错了,少了s,写成了 'endwith'

Python发送http请求时遇到问题总结

                if interface_url.endswith('?'):
req_url = interface_url + temp_interface_param
else:
req_url = interface_url + '?' + temp_interface_param

2、报错信息为“ERROR request() got an unexpected keyword argument 'header”,排查发现将参数名headers写成了header

Python发送http请求时遇到问题总结

response = requests.get(url=req_url, headers=header_data, verify=False, timeout=10)

3、报错信息为“ERROR No connection adapters were found for 'test.XXX.xxx/xxx/'”,排查发现URL少了“http://”,加上解决问题

Python发送http请求时遇到问题总结

4、发送HTTP请求,请求方式是post时,url和参数等都正确,但是请求时还是报错,排查发现使用Python发送请求时,并没有把参数传进去,导致报错;

Python发送http请求时遇到问题总结

进一步排查发现,请求头参数类型未设置content-type值,常用的content-type有四种,如下:

(1)application/x-www-form-urlencoded:是最常见的数据类型,通常表明请求的数据类型是键值对类型

(2)application/json:请求的数据类型是json格式

(3)multipart/form-data:通常用于上传文件

(4)application/xml:数据格式为xml格式

在请求头中添加了'content-type':'application/x-www-form-urlencoded'数据后,传参也遵循对应的格式,HTTP请求就能正常返回数据了

请求头content-type值参考:https://www.jianshu.com/p/f59b04ffea61