Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
难以在tcl rest中发布多部分/表单数据_Rest_Post_Tcl_Multipartform Data - Fatal编程技术网

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

难以在tcl rest中发布多部分/表单数据,rest,post,tcl,multipartform-data,Rest,Post,Tcl,Multipartform Data,我试图在tcllib的rest包中发布一个图像,作为多部分/表单数据文档的一部分。我相信我只需要正确地设置广告的格式 url看起来像: POST /api/v1/rawImage/1000?slice=1 我可以很容易地使用curl(以及其他东西)实现这一点: 在查看rest.tcl时,我没有看到任何明确设置有效负载边界的内容 以下是我必须尝试的帖子: #!/usr/bin/tclsh package require rest package require json # pull in

我试图在tcllib的rest包中发布一个图像,作为多部分/表单数据文档的一部分。我相信我只需要正确地设置广告的格式

url看起来像:

POST /api/v1/rawImage/1000?slice=1
我可以很容易地使用curl(以及其他东西)实现这一点:

在查看rest.tcl时,我没有看到任何明确设置有效负载边界的内容

以下是我必须尝试的帖子:

#!/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
在wireshark中可以看到以下HTTP标头:


你可以看看谷歌文档的例子


此外,如果您想了解有关mime边界字符串的更多信息,还可以在中看到过程mime\u multipart

如果您只发送一个文件,为什么要使用multipart表单?明白。这个例子试图说明基本问题。此外,即使对于单个文件上载,swagger模式定义也需要多部分/表单数据。谢谢。谢谢你的评论。我确实看了一下gdocs示例。事实上,我的一些示例代码来自gdocs示例。mime_多部分虽然看起来更接近解决方案,但会生成多部分/相关的格式化文档。再次感谢。
#!/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