tcl rest中难以发布多部分/表单数据

时间:2018-07-25 18:05:41

标签: rest post tcl multipartform-data

我正在尝试将tcllib的rest包中的图像发布为multipart / form-data文档的一部分。我相信我只需要正确格式化Payoad。

网址看起来像:

POST /api/v1/rawImage/1000?slice=1

我可以轻松地使用curl(以及其他功能)完成此操作:

curl -v -X POST -H "Content-Type: multipart/form-data" -F imageFile=@../../images/data/Image_1.bin http://${HOST}/api/v1/rawImage/1000?slice=1

在浏览rest.tcl时,我看不到任何能明确格式化有效负载边界的东西。

这是我要尝试POST的条件:

#!/usr/bin/tclsh

package require rest
package require json

# pull in Image data
set fh [open "Image_1.bin"]
fconfigure $fh -encoding binary -translation lf
set filedata [read $fh]
close $fh
puts "filedata length: [string length $filedata]"

# POST request
set url http://localhost:5007/api/v1/rawImage/100?slice=1
set header [list content-type multipart/form-data]
set config [list format json method post headers $header]

set form_data {rawImage $filedata}

set res [::rest::simple $url {} $config $form_data]

puts $res

可以看到以下HTTP标头是Wireshark:

Wireshark trace

1 个答案:

答案 0 :(得分:0)

您可以看看create interface command documentation,它是Google文档的示例。

此外,如果您想进一步了解mime边界字符串,还可以在source code of "rest"中看到proc mime_multipart