难以在tcl rest中发布多部分/表单数据
我试图在tcllib的rest包中发布一个图像,作为多部分/表单数据文档的一部分。我相信我只需要正确地设置广告的格式 url看起来像:难以在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
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