我在raspberry pi中有一个SimpleHTTPServer,它使用的python脚本与index.html网页在同一目录中执行。代码如下:
#!/usr/bin/python
import SimpleHTTPServer
import SocketServer
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import httplib2
PORT = 8080
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
加载网页后,它开始发送不同的get请求,其中包含我需要用python脚本读取的数据,但我不知道该怎么做。
这是获取请求的示例;
10.8.0.6 - - [27/Nov/2016 11:18:07] code 404, message File not found
10.8.0.6 - - [27/Nov/2016 11:18:07] "GET /ok.png HTTP/1.1" 404 -
10.8.0.6 - - [27/Nov/2016 11:18:07] code 404, message File not found
10.8.0.6 - - [27/Nov/2016 11:18:07] "GET /red.png HTTP/1.1" 404 -
10.8.0.6 - - [27/Nov/2016 11:18:07] code 404, message File not found
10.8.0.6 - - [27/Nov/2016 11:18:07] "GET /arduino/start/0.16388046142178503 HTTP/1.1" 404 -
10.8.0.6 - - [27/Nov/2016 11:18:07] code 404, message File not found
10.8.0.6 - - [27/Nov/2016 11:18:07] "GET /favicon.ico HTTP/1.1" 404 -
10.8.0.6 - - [27/Nov/2016 11:18:17] code 404, message File not found
10.8.0.6 - - [27/Nov/2016 11:18:17] "GET /arduino/update/0.6913944096802204 HTTP/1.1" 404 -
不要担心404错误,它出现是因为网络上有不同的图标我还没有放在目录中,因为我正在做测试。
原因是因为我想这样做是因为我正在“翻译”一个网络服务器来控制电磁阀以及我在Arduino Yun上工作的不同传感器。在arduino中,代码读取get请求,并且取决于获取请求的内容是什么,请求它使用带有传感器数据的XML包进行响应,或者它作用于阀门。
在arduino上,将get请求“捕获”为String的代码如下:
if (client) { // got client?
String request = client.readString();
request.trim();
然后程序在字符串中查找单词,并根据找到的单词以不同的信息进行响应。一个例子;
if (request=="inicial") {
// send rest of HTTP header
client.println("Content-Type: text/xml");
client.println("Connection: keep-alive");
client.println();
// send XML file containing input states
inicial(client);
}
总结一下,我想在我的python脚本中读取get请求并从中提取数据,然后用XML响应,但我认为这最后一步将在互联网上得到更好的解释,所以我不这样做担心它。
我希望我的解释足够明确。
感谢!!!
答案 0 :(得分:0)
这是您向地址发出请求的方式。响应对象分配给变量。然后你可以从中提取任何你想要的东西。
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}