首页 > 解决方案 > 通过 HTTP POST 请求发送文本

问题描述

通过 HTTP POST 在远程期望文本上有一个应用程序端点。

这可以通过简单地发送一个文本文件来完成吗?具体来说,我正在使用 curl:

curl -X POST -d lines.txt http://theserver.com/theendpoint

还是我必须使用 Python 脚本将文本作为流发送?我试过这个:

def send_to_server(text):
    url = 'http://theserver.com/theendpoint'
    headers = {'content-type': 'text/plain'}
    r = requests.post(url=url, data=text, headers=headers)
    return r

其中text由以下人员创建:

output = io.StringIO()
output.write( some_function() ) # getting some text from a different function 
text = output.getvalue()

换句话说 - 服务器上的应用程序是否以两种方式获得了它所期望的?

标签: pythonhttpcurlpostendpoint

解决方案


-d将命令行中的字符串作为正文-d @传递,将命令行中给出的文件内容作为正文传递。

你想要后者:

curl -X POST -d @lines.txt http://theserver.com/theendpoint

推荐阅读