Python 设备的本地API
我正在尝试与一个托管自己的本地API以获取数据的应用程序进行交互。我对HTTP请求的了解还远远不够,这可能会对Stackoverflow提出很多要求,但是我如何在局域网上与这个设备交互呢 指示说明HTTP请求需要包括以下内容:Python 设备的本地API,python,python-requests,Python,Python Requests,我正在尝试与一个托管自己的本地API以获取数据的应用程序进行交互。我对HTTP请求的了解还远远不够,这可能会对Stackoverflow提出很多要求,但是我如何在局域网上与这个设备交互呢 指示说明HTTP请求需要包括以下内容: 是数量可变的HTTP头;每个标题都在自己的行上。 标题中必须包含以下项目: o内容类型:text/xml o内容长度:xx,其中“xx”是文章正文中的字符数 o授权:基本XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,其中32个字符的基本
是数量可变的HTTP头;每个标题都在自己的行上。
标题中必须包含以下项目:
o内容类型:text/xml
o内容长度:xx,其中“xx”是文章正文中的字符数
o授权:基本XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,其中32个字符的基本身份验证凭证使用EAGLE Cloud ID作为用户名,EAGLE安装代码作为密码
最终,我将尝试执行以下列出的操作(获取仪表数据):
要从仪表中获取数据,必须首先查找其硬件地址。这可以通过本地API向EAGLE发出“device_list”命令来实现,该命令通过发送正文中包含以下文本的帖子来实现:
<Command>
<Name>device_list</Name>
</Command>
这是一个示例,说明文档中的POST请求应该是什么样子。
尝试以下方法
import requests
url = "http://10.100.100.27/cgi-bin/post_manager"
headers = {
'Content-Type': 'text/xml',
'Authorization' : 'Basic ' + '<your api key>',
}
command = 'device_list'
payload = '<Command><Name>{}</Name></Command>'.format(command)
print(requests.post(url, headers=headers, payload=payload).text)
导入请求
url=”http://10.100.100.27/cgi-bin/post_manager"
标题={
“内容类型”:“text/xml”,
“授权”:“基本”+“”,
}
命令='设备列表'
有效负载=“{}”。格式(命令)
打印(requests.post(url,headers=headers,payload=payload).text)
发送帖子数据和标题可以在示例中看到,您还需要将/cgi-bin/post\u-manager
添加到您的urlOk谢谢。正文要求是payload={'Command':'wifi_status'}
吗?您希望payload
是XML字符串,而不是dictwow字符串
import requests
url = "http://10.100.100.27/cgi-bin/post_manager"
headers = {
'Content-Type': 'text/xml',
'Authorization' : 'Basic ' + '<your api key>',
}
command = 'device_list'
payload = '<Command><Name>{}</Name></Command>'.format(command)
print(requests.post(url, headers=headers, payload=payload).text)