我正在使用 Zend Http 客户端调用外部服务。该服务允许我将文件上传到他们的存储系统。它需要在查询字符串中发送相关参数(用户 ID 等),文件上传内容应在 POST 正文中发送,内容类型为“application/zip”(我发送的是 zip 文件里面有各种各样的东西)。
为此,我使用 zend 客户端的 setParameterGet() 函数在查询字符串中设置参数。然后我使用 setFileUpload() 函数设置文件上传内容:
$this->client->setFileUpload($zipFilePath, 'content', null, 'application/zip');
但是,该服务告诉我我发送的内容类型错误,即“multipart/form-data”
这是 Zend 客户端发送到服务的原始标头(请注意,我已经删除了一些敏感信息,将它们替换为包含在 [] 括号中的项目名称)
POST https://[ServiceURL]?cmd=[COMMAND]&enrollmentid=[ENROLLMENTID]&itemid=[ITEMID]
HTTP/1.1
主机:[HOST] 接受编码:gzip、deflate
用户代理: Zend_Http_Client Cookie:
AZT=9cMFAIBgG-eM1K|Bw7Qxlw7pBuPJwm0PCHryD;
内容类型:multipart/form-data;边界=---ZENDHTTPCLIENT-05535ba63b5130ab41d9c75859f678d8
内容长度:2967
-----ZENDHTTPCLIENT-05535ba63b5130ab41d9c75859f678d8
内容处置:表单数据;名称=“内容”;文件名="agilixContent.zip"
内容类型:应用程序/zip
[此处的原始文件数据]
所以基本上,即使我设置了 POST 内容类型标头,我的外部服务也会告诉我我发送了错误的内容类型,因为还有另一个值为“multipart/form-data”的内容类型标头。我尝试更改/删除该内容标题,但无济于事。如何删除该标头,以便我的请求中不会有这两个重复的“内容类型”标头?