1

この種のデータを 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 データを送信するのではなく、リンクされたコード。

ヒントはありますか?

4

1 に答える 1