【发布时间】:2016-12-30 16:19:00
【问题描述】:
我的设备正在向我的 RaspberryPi 发送以下 http 消息:
POST /sinvertwebmonitor/InverterService/InverterService.asmx/CollectInverterData HTTP/1.1
Host: www.automation.siemens.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 349
xmlData=<rd><m>xxxxx</m><s>yyyyyy</s><d t="1483019400" l="600"><p i="1">460380AE</p><p i="2">43655DE7</p><p i="3">4212C986</p><p i="4">424805BC</p><p i="5">4604E3D1</p><p i="6">441F616A</p><p i="7">4155E7F5</p><p i="8">E1</p><p i="9">112</p><p i="C">153</p><p i="D">4</p><p i="E">11ABAC</p><p i="F">22A48C</p><p i="10">0</p></d></rd>
我无法更改设备上的任何内容。
在 RaspberryPi 上运行脚本以侦听和接收来自套接字的消息。 到目前为止,这有效,收到的消息是上面的消息。
现在,我想从这条消息中创建一个 HTTP 对象,然后轻松地提取标题、内容等。 类似于下面的例子:
r = requests.get('https://www.google.com')
r.status_code
但是,没有“获取”网址。我只想读取我已经拥有的字符串。
伪例子:
r = requests.read(hereComesTheString)
r.status_code
我希望问题变得可以理解。
很高兴得到一些提示。
感谢和最好的问候, 克里斯托夫
【问题讨论】:
-
如果这都是本地/无服务器的,你为什么要关心标头或状态码是什么?你不会只关心字符串的内容吗?我正在试图弄清楚你真正的用例是什么。
-
您的意思是,从您的 RPi 中,您想剖析 HTTP 请求并做出 HTTP 响应?您的套接字服务器是否已经实现了 HTTP?
-
@birryree:例如,我想更改路径并传递消息。我知道我可以通过一些解析和替换来做到这一点,但我认为可能有更优雅的方式..
-
这听起来绝对像是您想要在您的 RPi 上设置服务器或代理,然后。我认为 Alistair McCormack 的回答可能正朝着您需要的正确方向发展。
标签: python sockets httprequest httpresponse