卷曲如何发布多部分/表单数据数据以及如何在Flask请求中读取多部分/表单数据

沙爹

我尝试通过包含以下内容的CURL发布多部分/表单数据:

  • JSON对象
  • 流对象pdf和jpeg文件
  curl -i -X POST -H  
"Authorization":"eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItWVvBb90HF_yfhcsyg3lY" -H    

"Content-Type:application/multipart/form-data" -d '{"user data":  {"preferred_city":"Newyork","within_radious":"5"}}' --data-binary   

"uploaded_documents":@mydocument.pdf http://127.0.0.1:5000/api/city

现在,我需要在flask请求对象中读取此多部分数据。

request.data

它确实打印了数据,但是我不确定如何读取流对象并将文件存储到磁盘。

姆霍克

curl命令存在一些问题,所有这些都可能导致该问题:

  1. application/multipart/form-data不是有效的MIME类型,因此Content-Type无效。对于文件上传,内容类型通常为multipart/form-data另外,您无需指定内容类型,curl会根据参数确定其内容。
  2. 使用-F代替-d将导致curl生成并发布multipart/form-data具有有效边界表单。
  3. 应该为每个表单字段指定一个名称。

将它们放在一起将导致以下curl命令:

curl -i -H "Authorization":"eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItWVvBb90HF_yfhcsyg3lY" \
    -F user_data='{"user data": {"preferred_city":"Newyork","within_radious":"5"}}' \
    -F [email protected] \
    http://127.0.0.1:5000/api/city

如果您不喜欢curl所选择的内容,则可以为每个部分指定内容类型(文件为application / octet-stream):

curl -i -H "Authorization":"eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItWVvBb90HF_yfhcsyg3lY" \
    -F 'user_data={"user data": {"preferred_city":"Newyork","within_radious":"5"}};type=application/json' \
    -F '[email protected];type=application/pdf' \
    http://127.0.0.1:5000/api/city

最后一条命令将生成如下HTTP请求:

POST / api / city HTTP / 1.1
用户代理:curl / 7.32.0
主持人:127.0.0.1:5000
接受: */*
授权:eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItgWWVvBb90HF_yf
内容长度:496
期望:100-继续
内容类型:多部分/表单数据;边界= ------------------------ 1ab997efff76fe66

-------------------------- 1ab997efff76fe66
内容处置:表单数据;name =“ user_data”
内容类型:application / json

{“用户数据”:{“ preferred_city”:“ Newyork”,“ within_radious”:“ 5”}}
-------------------------- 1ab997efff76fe66
内容处置:表单数据;name =“ uploaded_documents”; filename =“ mydocument.pdf”
内容类型:应用程序/ pdf

这是mydocument.pdf文件。
它应该是pdf文件,但这更易于测试。

-------------------------- 1ab997efff76fe66--

然后在瓶则可以使用访问形式的数据request.form,例如request.form['user_data']由于它是json字符串,因此您可以使用加载它json.loads(request.form['user_data'])

可以通过使用此处此处的Flask文档中的request.file描述来访问上载的文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

请求:发布多部分/表单数据

来自分类Dev

请求:发布多部分/表单数据

来自分类Dev

如何在wicket中解析多部分表单数据

来自分类Dev

多部分表单数据是如何工作的?

来自分类Dev

如何使用多部分/表单数据发布Facebook照片

来自分类Dev

如何使用多部分/表单数据发布Facebook照片

来自分类Dev

如何在多部分/表单数据请求中获取文件的实际文件大小

来自分类Dev

如何使用发布多部分/表单数据的请求来排列数据和文件的顺序?

来自分类Dev

解析从请求发布接收的多部分/表单数据

来自分类Dev

在PHP中读取多部分/表单数据POST数据

来自分类Dev

如何在NodeJ中发送多部分/表单数据PUT请求?

来自分类Dev

如何在ajax中发送多部分/表单数据请求

来自分类Dev

如何在ajax中发送多部分/表单数据请求

来自分类Dev

如何在C#MVC 4 Web服务中使用多部分/表单数据请求

来自分类Dev

如何从多部分表单数据中获取Node JS中间件中的请求正文?

来自分类Dev

在iOS中,如何读取源自WKWebView的NSURLRequest中的多部分表单数据?

来自分类Dev

如何使用Spring MockMvc输入多部分/表单数据?

来自分类Dev

如何使用ServiceStack处理多部分表单数据?

来自分类Dev

AngularJS如何上传多部分表单数据和文件?

来自分类Dev

CGI 脚本如何解码多部分/表单数据

来自分类Dev

如何在Azure Function中接收多部分表单数据?

来自分类Dev

Android的多部分/表单数据构造

来自分类Dev

CURL + POST +多部分/表单数据

来自分类Dev

分组GET多部分表单数据

来自分类Dev

JSOUP +多部分/表单数据响应

来自分类Dev

使用RestRserve的多部分/表单数据

来自分类Dev

HTTP POST多部分表单数据

来自分类Dev

Android的多部分/表单数据构造

来自分类Dev

多部分表单数据异常dropwizard

Related 相关文章

  1. 1

    请求:发布多部分/表单数据

  2. 2

    请求:发布多部分/表单数据

  3. 3

    如何在wicket中解析多部分表单数据

  4. 4

    多部分表单数据是如何工作的?

  5. 5

    如何使用多部分/表单数据发布Facebook照片

  6. 6

    如何使用多部分/表单数据发布Facebook照片

  7. 7

    如何在多部分/表单数据请求中获取文件的实际文件大小

  8. 8

    如何使用发布多部分/表单数据的请求来排列数据和文件的顺序?

  9. 9

    解析从请求发布接收的多部分/表单数据

  10. 10

    在PHP中读取多部分/表单数据POST数据

  11. 11

    如何在NodeJ中发送多部分/表单数据PUT请求?

  12. 12

    如何在ajax中发送多部分/表单数据请求

  13. 13

    如何在ajax中发送多部分/表单数据请求

  14. 14

    如何在C#MVC 4 Web服务中使用多部分/表单数据请求

  15. 15

    如何从多部分表单数据中获取Node JS中间件中的请求正文?

  16. 16

    在iOS中,如何读取源自WKWebView的NSURLRequest中的多部分表单数据?

  17. 17

    如何使用Spring MockMvc输入多部分/表单数据?

  18. 18

    如何使用ServiceStack处理多部分表单数据?

  19. 19

    AngularJS如何上传多部分表单数据和文件?

  20. 20

    CGI 脚本如何解码多部分/表单数据

  21. 21

    如何在Azure Function中接收多部分表单数据?

  22. 22

    Android的多部分/表单数据构造

  23. 23

    CURL + POST +多部分/表单数据

  24. 24

    分组GET多部分表单数据

  25. 25

    JSOUP +多部分/表单数据响应

  26. 26

    使用RestRserve的多部分/表单数据

  27. 27

    HTTP POST多部分表单数据

  28. 28

    Android的多部分/表单数据构造

  29. 29

    多部分表单数据异常dropwizard

热门标签

归档