python3 requests设置headers = {‘Content-Type‘: ‘application/json‘ }未生效,解决方案

requests通过post请求,设置headers = {‘Content-Type’: ‘application/json’ }未生效问题

1、requests中,设置headers参数{‘Content-Type’: ‘application/json’ },是将请求数据以json的格式发送,而headers中默认请求方式是表单提交:{‘Content-Type’: ‘application/x-www-form-urlencoded’ };

问题:

设置了headers = {‘Content-Type’: ‘application/json’ },但未跑通接口,未返回正确数据,问题代码如下:

#coding = utf-8
import requests,json
url = 'http://xxxx'
data_login = {
    "mobile": "xxxx",
    "password": "123456"
}
headers = {
    'Content-Type': 'application/json'
}
res_login_status = requests.post(url=url+"/api/sys/login",data=data_login,headers=headers).json()
print(json.dumps(res_login_status,indent=4,ensure_ascii=False))

输出结果如下:
在这里插入图片描述

解决方法1:

headers = {‘Content-Type’: ‘application/json’ }的作用是将请求的数据转换为json格式上传,可以将上传的数据直接以json格式上传,可以请求成功;
代码如下:

#coding = utf-8
import pytest,requests,json
url = 'http://xxxx'
data_login = {
    "mobile": "1xxxx",
    "password": "123456"
}
headers = {
    'Content-Type': 'application/json'
}
res_login_status = requests.post(url=url+"/api/sys/login",data=json.dumps(data_login),headers=headers).json()
print(json.dumps(res_login_status,indent=4,ensure_ascii=False))

运行结果如下:
在这里插入图片描述

解决方法2

post请求时,传入json参数的数据,代码如下:

#coding = utf-8
import pytest,requests,json
url = 'http://xxxx'
data_login = {
    "mobile": "1xxxx",
    "password": "123456"
}
headers = {
    'Content-Type': 'application/json'
}
res_login_status = requests.post(url=url+"/api/sys/login",json=data_login,headers=headers).json()
print(json.dumps(res_login_status,indent=4,ensure_ascii=False))
### 如何设置或获取 OneNET 平台上温湿度阈值 在 OneNET 物联网平台上,可以通过其提供的 RESTful API 或者 Web 控制台来设置和获取温湿度的阈值。以下是具体方法: #### 使用 RESTful API 设置或获取阈值 OneNET 提供了一套完整的 API 接口,允许开发者通过 HTTP 请求操作设备及其数据流。对于设置或获取温湿度阈值的操作,主要涉及以下几个方面: 1. **创建触发器** 创建触发器是为了定义特定条件下执行的动作(如发送邮件、短信)。这需要指定目标数据流(例如 `temp` 和 `humi`),并为其配置相应的阈值条件。 - URL: `http://api.heclouds.com/triggers` - Method: POST - Headers: - Content-Type: application/json - api-key: 用户的 API 密钥[^4] - Body 参数示例: ```json { "name": "temperature_alarm", "datastreams": [ {"id": "temp", "alias": ""} ], "cond_type": ">", "value": "35" } ``` 2. **查询现有触发器** 如果已经设置了某些触发器,则可通过 GET 方法查询它们的状态和参数。 - URL: `http://api.heclouds.com/triggers/{trigger_id}` - Method: GET - Headers: - api-key: 用户的 API 密钥 3. **更新触发器** 当需要修改现有的阈值时,可以使用 PUT 方法更新触发器的相关属性。 - URL: `http://api.heclouds.com/triggers/{trigger_id}` - Method: PUT - Headers: - Content-Type: application/json - api-key: 用户的 API 密钥 - Body 参数示例: ```json { "value": "40" } ``` #### 通过 Web 控制台手动设置阈值 除了编程方式外,还可以直接登录到 OneNET 的网页端完成这些工作流程: 1. 登录账户后导航至对应的设备页面; 2. 找到“触发器管理”选项卡下新增按钮开始新建规则; 3. 填写好关联的数据流名称以及比较运算符还有具体的数值界限即可保存生效; 以上两种途径均能达成预期效果—即监控环境变化情况下的自动反馈机制构建目的。 ```python import requests def create_trigger(api_key, trigger_name, datastream_id, cond_type, value): url = 'http://api.heclouds.com/triggers' headers = {'Content-Type': 'application/json', 'api-key': api_key} payload = { "name": trigger_name, "datastreams": [{"id": datastream_id}], "cond_type": cond_type, "value": str(value) } response = requests.post(url, json=payload, headers=headers) return response.json() # Example usage of the function above with dummy values. create_trigger('your_api_key_here', 'humidity_warning', 'humi', '>', 80)[^4] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值