2017-05-29 11 views
0

を要求します。このAPIには、条件の1つを含むJSON本文投稿要求が必要ですJSONの配列構文は、私は、私はへのアクセス権を持っているAPIを照会しますPHPスクリプトを記述しようとしてる

"Analyses": ["Phenotype"] 

この文字列の2番目の部分には二重引用符はありません。下にこのスクリプトをHttpfulで渡そうとすると、このスクリプトはHTTP 500の結果を返します。分析基準がなければ、JSON形式の出力で適切な応答(分析情報を要求するエラーはありますが)が得られます。私はこれが解析文字列の書式設定/構文と関係があると想定しており、それについて何をすべきか分かりません。一重引用符を使用すると、500エラーが発生します。引用符を完全に残しておくと、それは配列であるとみなされ、オブジェクトエラー "オブジェクト参照がオブジェクトのインスタンスに設定されていません"が返されます。私はそのフォーマットを引用符なしで渡す方法を知らない。

$response = \Httpful\Request::post($url) 
     ->sendsJson() 
     ->body('{"apiUserKey":"abcde", 
       "apiUserId":"efghi", 
       "Species":"9606", 
       "Analyses": "["Phenotype"]" 
       }') 
     ->send(); 

ありがとうございます!

+0

単一引用符をJSONで許可されていません。そのエラー 'オブジェクト参照がオブジェクトのインスタンスに設定されていません'は.netに関連していますか?配列が必要な場合は、 "分析":["表現型"、 "B"、 "C"] 'は有効でしょうか? – Robert

答えて

0

あなたが一例だが、ほぼ右ですが、多くの二重引用符の1セットを含めています。 "分析"フィールドに文字列の配列を渡そうとしています。配列自体は二重引用符で囲む必要はありません。

$response = \Httpful\Request::post($url) 
    ->sendsJson() 
    ->body('{"apiUserKey":"abcde", 
      "apiUserId":"efghi", 
      "Species":"9606", 
      "Analyses": ["Phenotype"] 
      }') 
    ->send(); 
+0

あなたが提案したスクリプトを実行すると、「オブジェクトのインスタンスがオブジェクトのインスタンスに設定されていません」というエラーが表示されます。上記のロバートは、それはネットのエラーかもしれないと言いましたか?通常、分析基準は複数の配列になります(Ex。["Phenotype"、 "Tissue"])。私はjson_encode(配列...)を試して、500エラーの代わりに空白の画面を返しました。 – user121106

+0

私はリモートサービスの開発者に連絡しなければならないのではないかと心配しています。これは文字列の配列に対して有効なJSONであるためです。 –

+0

私は、開発者と、エラーが実際に分析セクションからない来るのではなく、それは「SpeciesID」されている必要があり、「種」を偽装されたと話しました。あなたの書式設定は問題を解決し、これに正解とラベルを付けます。ありがとうございました! – user121106

関連する問題