0

Google の Closure Compilerを使用しようとしていますが、残念ながら cURL の 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);

パラメータを設定していないことを示すエラー 13 が Google から表示され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 に答える