1

これはできますか?私は次のような例を見ています

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  'variable' => '@path/to/file;type=application/json'
));

しかし、変数値として文字列を渡す場合、この MIME タイプを設定できません。私がインターフェースしている API は、この MIME タイプを application/json に設定することを明示的に要求していますが、ファイルを使用しない限り、curl ライブラリで設定できないようです。例えば:

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  'variable' => 'json_string;type=application/json'
));

最後に type=application/json が追加された文字列のみを出力します (これは理にかなっています)。

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
  'variable' => sprintf('@%s;type=application/json', $json_string)
));

表向きはファイルが見つからないため (?)、ボディに何も渡せません。

一時ファイルを書き出したり、独自の投稿リクエストを作成したりせずに、この MIME タイプを明示的に設定する方法についてのアイデアはありますか?

4

1 に答える 1

1

ポストフィールドにmime-typeを設定したいですか?

次のようにhttp-request-headerで設定することをお勧めします。

CURLOPT_HTTPHEADER => array('Content-Type:application / json')、

于 2013-02-25T19:37:16.973 に答える