以下代码片段可在GuzzleHttp v5中使用。将GuzzleHttp v5升级到v6
$response = $client->post(
$uri,
[
'headers' => ['Cookie' => 'JSESSIONID=' . $sessionId],
'body' => ['Filedata' => fopen($filename, 'r')],
]
);
$ filename中指定的文件内容作为变量'Filedata'发送到URI。
用于上载的规格是:
http://yourserver.com/services/create?Filedata=<multipart/form-data encoded file>...
该文件必须为 'Filedata上' 被发送。这应该如何编码为GuzzleHttp v6?
据我所见,GuzzleHttp v6不允许这样做,但是我只尝试了一两天,没有更多时间自己去研究它,因为应用程序必须在星期一才能发布。
任何想法?
我现在将它作为v5,但这只是回避这个问题。
你在问如何制定请求吗?你是试图传输文件,还是一次性发送它?您是否正试图发布您的文件?如果是这样,为什么可以在Content-Type头部中找到的信息放置在Uri中而不在头部内? –
这样做是因为接收数据的服务器的规范需要这种方式,这个请求的所有内容都包含在URI中,包括jsessionid,它也在头部显示,如图所示。如上所示,Guzzle v5的代码是微不足道的,但v6已经改变了所有这一切,并且现在已不再明确如何制定这个请求。所以,问题是如何将上面的代码段编码为Guzzle v6?对于星期一的演示,我已经使用了Guzzle v5,但它迟早需要改变。 –