以下代碼片段可在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,但它遲早需要改變。 –