Python 设备的本地API

Python 设备的本地API,python,python-requests,Python,Python Requests,我正在尝试与一个托管自己的本地API以获取数据的应用程序进行交互。我对HTTP请求的了解还远远不够,这可能会对Stackoverflow提出很多要求,但是我如何在局域网上与这个设备交互呢 指示说明HTTP请求需要包括以下内容: 是数量可变的HTTP头;每个标题都在自己的行上。 标题中必须包含以下项目: o内容类型:text/xml o内容长度:xx,其中“xx”是文章正文中的字符数 o授权:基本XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,其中32个字符的基本

我正在尝试与一个托管自己的本地API以获取数据的应用程序进行交互。我对HTTP请求的了解还远远不够,这可能会对Stackoverflow提出很多要求,但是我如何在局域网上与这个设备交互呢

指示说明HTTP请求需要包括以下内容:

是数量可变的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)