python sanic 向别的服务器发送post请求_将HTTP上传数据返回到sanic s

我正在尝试将数据上载到sanicweb服务器。为此,我使用curl发出一个POST请求。我尝试在POST请求之后返回一些数据。这背后的基本原理是返回一些ID,现在代表服务器端的上传。但这似乎行不通。现在我在想:我的程序错了吗?curl不写入输出吗?或者这是sanic中的错误?有人能帮我吗?谢谢!在

下面是Python程序:import signal

import asyncio

import uvloop

import sanic

app = sanic.Sanic(__name__)

loop = asyncio.get_event_loop()

server = app.create_server(host="localhost", port=3002)

task = asyncio.ensure_future(server)

@app.post("/testUpload", stream=True)

async def api_testUpload(request):

async def doStream(response):

while True:

body = await request.stream.get()

if body is None:

break

sanic.response.json({

"result": "good!"

})

return sanic.response.stream(doStream)

signal.signal(signal.SIGINT, lambda s, f: loop.stop())

try:

loop.run_forever()

except:

loop.stop()

您可以这样调用curl:

^{pr2}$

下面是curl写入STDOUT的内容:* Trying 127.0.0.1...

* Connected to localhost (127.0.0.1) port 3002 (#0)

> POST /testUpload HTTP/1.1

> Host: localhost:3002

> User-Agent: curl/7.47.0

> Accept: */*

> Content-Length: 334504

> Content-Type: application/x-www-form-urlencoded

> Expect: 100-continue

>

< HTTP/1.1 200 OK

< Keep-Alive: 5

< Transfer-Encoding: chunked

< Content-Type: text/plain; charset=utf-8

<

* Done waiting for 100-continue

* We are completely uploaded and fine

* Connection #0 to host localhost left intact

如您所见,将生成text/plain响应。这应该是一个包含我数据的application/json,不是吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值