この種のデータを PHP 経由で RESTful サービスに送信する方法を見つけようとしています。
{
"api_version": 1.0,
"project_id" : 123,
"batch_id" : 111,
"accesskey" : "abc123",
"job": {
"file": file,
"word_count": 111,
"title": "FAQ",
"cms_id": "page_123_en_sp",
"url" : "http://original_post_url.com",
"is_update": false,
"translator_id": 123,
"note": "Translate these words",
"source_language": "en",
"target_language": "it"
}
}
まず第一に、このコードを使用する人がインストールされていないか、インストールを許可されていない可能性があるため、curl を使用できません。
これは「通常の」JSON オブジェクトではありません。job->file プロパティは実際のファイルです (ファイルへの URL ではありません)。
これは、すべてのリクエストを送信するために使用している実際のコードであり、この特定のケースに遭遇するまで機能しました: http://pastebin.com/6pEjhAkg
「ファイル」プロパティは次のように作成されます。
$file = generate_file( $content );
protected static function generate_file($content) {
$file = fopen('php://temp','r+');
fwrite($file, $content);
rewind($file);
return $file;
}
現在、PHP 側で $params 引数を適切に設定してデータを送信すると、RESTful は「api_version」と「project_id」の欠落に関するエラーを返しますが、それらは存在します。問題は彼がデータを JSON として受け取っていないことだと確信していますが、彼のプロパティにファイル ポインター リソースを含むオブジェクトを JSON に変換するにはどうすればよいでしょうか?
データを送信してファイルをビルドするコードは元開発者によって作成されたものであり、私は彼と連絡を取ることができません。
何が問題なのかを理解しようとしましたが、これまでに修正できた唯一のことは、別の無関係の問題について、実際に JSON データを送信することです ($multipart==false の場合)。 urlencoded データを送信するのではなく、リンクされたコード。
ヒントはありますか?