接收通过 http 发送的文件的简单服务
Simple service to receive file sent via http
需要一些建议 - 我在 windows 10 PC 上有一个应用程序 运行,它以 text_binary 或 json 格式发送数据,这将是一行文本通常(大约 8kb 的小文件)。
看起来像这样 -
{source={ivarId={f1d22827-1650-41a0-a31e-28621430bc7d}, channel=1}, common={type=AUDIT_LOG, time=2020-04-20T15:40:11.256Z}, auditLog={clientId=2148, clientIp=127.0.0.1, account=, command=START_LIVE, parameters=[{name=channelId, value=1}, {name=answer, value=1}, {name=replyType, value=1}], result=STATUS_OK}, id={be138cc4-321c-41a9-8d2f-25a1e5d058fc}, addInfo={ivarIp=192.168.1.17}, images=[]}
它用于发送的协议是 HTTP,因此我必须设置一个网络服务来接收此数据并将网络服务的 URL 提供给应用程序以便它可以发送。
我只需要网络服务来接收这个文本文件并将其存储在本地某个地方。
Web 服务必须安装在应用程序所在的同一台 Windows 10 PC 上。
关于从哪里着手的任何想法,即接受和存储此文件的最佳方法是什么?
在我的脑海中,我可以想到一个简单的 python 脚本来启动 HTTP 服务器并将请求正文写入文件。
#!/usr/bin/python3
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length'])
body = self.rfile.read(content_length)
self.send_response(200)
self.end_headers()
f = open("request.txt", "wb") # you can use any name or probably derive name from request
f.write(body)
f.close()
httpd = HTTPServer(('localhost', 8001), SimpleHTTPRequestHandler)
httpd.serve_forever()
这是一个非常基本的示例,但它会为您提供一个起点。可以修改为指定文件location/name.
此答案假设文件内容在请求正文中发送。
如果您的请求有文件作为多部分数据,您可以参考this answer
需要一些建议 - 我在 windows 10 PC 上有一个应用程序 运行,它以 text_binary 或 json 格式发送数据,这将是一行文本通常(大约 8kb 的小文件)。
看起来像这样 -
{source={ivarId={f1d22827-1650-41a0-a31e-28621430bc7d}, channel=1}, common={type=AUDIT_LOG, time=2020-04-20T15:40:11.256Z}, auditLog={clientId=2148, clientIp=127.0.0.1, account=, command=START_LIVE, parameters=[{name=channelId, value=1}, {name=answer, value=1}, {name=replyType, value=1}], result=STATUS_OK}, id={be138cc4-321c-41a9-8d2f-25a1e5d058fc}, addInfo={ivarIp=192.168.1.17}, images=[]}
它用于发送的协议是 HTTP,因此我必须设置一个网络服务来接收此数据并将网络服务的 URL 提供给应用程序以便它可以发送。
我只需要网络服务来接收这个文本文件并将其存储在本地某个地方。 Web 服务必须安装在应用程序所在的同一台 Windows 10 PC 上。
关于从哪里着手的任何想法,即接受和存储此文件的最佳方法是什么?
在我的脑海中,我可以想到一个简单的 python 脚本来启动 HTTP 服务器并将请求正文写入文件。
#!/usr/bin/python3
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length'])
body = self.rfile.read(content_length)
self.send_response(200)
self.end_headers()
f = open("request.txt", "wb") # you can use any name or probably derive name from request
f.write(body)
f.close()
httpd = HTTPServer(('localhost', 8001), SimpleHTTPRequestHandler)
httpd.serve_forever()
这是一个非常基本的示例,但它会为您提供一个起点。可以修改为指定文件location/name.
此答案假设文件内容在请求正文中发送。
如果您的请求有文件作为多部分数据,您可以参考this answer