python3发送post请求参数为空的情况

post请求的时候如果不带参数,其实作用就跟get请求一样。我们在做接口测试的时候,发现开发就全部使用的post,get的作用就被这样的post空参数请求给替代了。在Python代码请求,如下:

class HttpHelper():
    
    def __init__(self):
        '''获取driver对象,和接口ip地址信息,里面的方法大家可以忽略,根据自己的情况来设置
        '''
        self.dr=Common.driver
        run_info=Common().get_current_run_config()
        app_info=Common().get_app_config()[run_info['_envir']]
        self.ip=app_info['url'].split('/')[2]
    
    def post(self,module,interface_name,post_para={}):
        '''arg: module  模块名
                interface_name   接口名称
                post_para     请求参数,默认是空字典,如果不填这个参数就是post请求参数为空的情况
        '''
        inter_info=Common().get_interface_info()[module]
        url='http://'+self.ip+inter_info[interface_name]['url']
        Common().logger_info("request - api - "+url)
        
        postdata = bytes(urllib.parse.urlencode(post_para), encoding='utf8') 
        Common().logger_info("request - arg - "+str(post_para))
        _jid=Common().get_jsessionid(self.dr)   #获取sessionid,这个方法是通过selenium的get_cookie方法来获取sessionid,大家可以参考我其他的文章
        header={
            'Accept':'application/json, text/plain, */*',
            'Connection': 'keep-alive',
            'Content-Type':'application/x-www-form-urlencoded',
            'Cookie':'JSESSIONID='+_jid+'',
            'Host': ''+self.ip+'',
            'Origin': 'http://'+self.ip+''
            }
        Common().logger_info("[header] - "+str(header))
        try:
            req=urllib.request.Request(url,postdata,header)
            with urllib.request.urlopen(req) as resp:
                response=resp.read().decode('utf-8')
                response=json.loads(response)
                Common().logger_info('response - '+str(response))
                if response['data']!='':
                    Common().logger_info('http post success!!!')
                return response
        except Exception as e:
            Common().logger_error(str(e))
代码里的Common().logger_***是我们项目的日志方法,输出一些执行日志,大家可以忽略。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以给你一些有关Python发送POST请求的信息,可以使用Python的标准库urllib和requests包。使用urllib,您可以使用urllib.request.urlopen()函数和urllib.parse模块来发送POST请求。如果您使用requests库,您可以使用requests.post()函数来发送POST请求。 ### 回答2: Python发送POST请求可以使用`requests`库中的`post()`方法。 首先,需要安装`requests`库。可以通过以下命令来安装: ``` pip install requests ``` 接下来,可以使用以下代码来发送POST请求: ```python import requests # 请求URL url = 'http://example.com/post' # POST请求参数 data = { 'key1': 'value1', 'key2': 'value2' } # 发送POST请求 response = requests.post(url, data=data) # 获取响应内容 content = response.text # 输出响应内容 print(content) ``` 上述代码中,我们首先导入`requests`库。设置了请求URLPOST请求参数。然后使用`post()`方法发送POST请求,并将返回的响应保存在`response`变量中。最后,我们可以通过`response.text`来获取响应的内容,并将其打印输出。 这就是使用Python发送POST请求的基本步骤。根据实际情况,你可能需要进一步处理请求的响应,例如对返回的数据进行解析和处理。 ### 回答3: Python发送POST请求可以通过使用requests库来实现。具体步骤如下: 1. 导入requests库 ```python import requests ``` 2. 创建一个字典对象来存储请求参数 ```python data = { 'key1': 'value1', 'key2': 'value2' } ``` 3. 调用requests库中的post方法,并将请求URL参数传递给post方法的对应参数 ```python response = requests.post(url, data=data) ``` 其中,`url`表示请求URL地址。 4. 获取响应结果 ```python response_text = response.text ``` 5. 解析和处理响应结果 ```python # 如果响应结果是JSON格式的数据 response_json = response.json() # 获取响应的状态码 status_code = response.status_code # 获取响应头信息 headers = response.headers ``` 6. 处理错误和异常 ```python try: response.raise_for_status() except Exception as e: print('请求错误: ', e) ``` 综上所述,以上是使用Python发送POST请求的基本步骤。根据实际需求,可以适当调整和增加代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值