gpt4 book ai didi

php - 如何在 PUT 上使用 Zend_Http_Client 设置内容类型?

转载 作者:行者123 更新时间:2023-12-04 06:02:15 25 4
gpt4 key购买 nike

嗨,我正在将 curl 调用重构为 Zend_Http_Client 调用。这将向带有给定文件的 CouchDB 数据库发送 PUT 请求,并为 _attachement 设置正确的 Content-Type。

exec(
'curl -s -X PUT ' . $url ' .
'--data-binary @\'' . $filePath . '\' -H "Content-Type: ' . $mimeType . '"', $resultJson, $returnCode
);

重构为 Zend_Http_Client 我有以下内容:
$adapter = new Zend_Http_Client_Adapter_Curl();
$client = new Zend_Http_Client();
$client->setAdapter($adapter);
$client->setUri($url);
$client->setRawData($filePath);
$adapter->setCurlOption('CURLOPT_HEADER', "Content-Type: $mimeType");

$response = $client->request('PUT');

这将引发以下异常:
未知或错误的 cURL 选项“CURLOPT_HEADER”集

如何正确设置 Content-Type?

最佳答案

而不是使用:

$client->setRawData($filePath);
$adapter->setCurlOption('CURLOPT_HEADER', "Content-Type: $mimeType");

我不得不使用:
$client->setRawData(file_get_contents($filePath));
$client->setHeaders('Content-Type', $mimeType);

显然你不能通过 setCurlOption() 设置一些 CURLOPT_;
$this->_invalidOverwritableCurlOptions = array(
CURLOPT_HTTPGET,
CURLOPT_POST,
CURLOPT_PUT,
CURLOPT_CUSTOMREQUEST,
CURLOPT_HEADER,
CURLOPT_RETURNTRANSFER,
CURLOPT_HTTPHEADER,
CURLOPT_POSTFIELDS,
CURLOPT_INFILE,
CURLOPT_INFILESIZE,
CURLOPT_PORT,
CURLOPT_MAXREDIRS,
CURLOPT_CONNECTTIMEOUT,
CURL_HTTP_VERSION_1_1,
CURL_HTTP_VERSION_1_0,
);

关于php - 如何在 PUT 上使用 Zend_Http_Client 设置内容类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com