0

我正在尝试使用Google 的 Closure Compiler,不幸的是我偶然发现了 cURL 的 postfields 的问题。似乎当我在这里指定一个数组时,它并没有按照它应该的方式工作。

通过将数组传递给 postfields,如下所示:

curl_setopt($this->curl, CURLOPT_POSTFIELDS, [
    "output_info"       => "compiled_code",
    "output_format"     => "text",
    "compilation_level" => "SIMPLE_OPTIMIZATIONS",
    "js_code"           => urlencode($jsCode),
]);
$result = curl_exec($this->curl);
var_dump($result);

我从 Google 收到错误 13,表明我没有设置output_info参数。但是,当我将 postfields 作为文字字符串传递时,如下所示,一切正常,我在响应中得到了缩小的 JS 代码。

curl_setopt($this->curl, CURLOPT_POSTFIELDS, 'output_info=compiled_code&output_format=text&compilation_level=SIMPLE_OPTIMIZATIONS&js_code=' . urlencode($jsCode));
$result = curl_exec($this->curl);
var_dump($result);

我在这里做错了什么?

4

1 回答 1

0

我认为这是一个重复的问题。请参阅Google Closure Compiler 和 multipart/form-data not working

长话短说 - 如果你将一个数组传递给 curl_setopt ,它会将 Content-Type 标头更改为 Google API 不支持的 multipart/form-data 。

于 2013-07-03T14:18:56.417 回答