0

アクセスできる API を照会する PHP スクリプトを作成しようとしています。この API には、JSON ボディ ポスト リクエストが必要です。基準の 1 つは次のとおりです。

"Analyses": ["Phenotype"]

その文字列の 2 番目の部分を二重引用符で囲まないことに注意してください。以下のスクリプトを Httpful で渡そうとすると、このスクリプトは HTTP 500 の結果を返します。Analyses 基準がないと、JSON 形式の出力で適切な応答が得られます (ただし、Analyses 情報を求めるエラーが発生します)。これは Analyses 文字列の書式設定/構文と関係があると思いますが、どうすればよいかわかりません。一重引用符を使用すると、500 エラーが発生します。引用符を完全に省略すると、それが配列であると見なされ、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というオブジェクト エラーが表示されます。引用符なしでその形式を渡す方法がわかりません。

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

ありがとう!

4

1 に答える 1

0

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

$response = \Httpful\Request::post($url)
    ->sendsJson()
    ->body('{"apiUserKey":"abcde",
            "apiUserId":"efghi",
            "Species":"9606",
            "Analyses": ["Phenotype"]
             }')
    ->send();
于 2017-05-29T18:26:36.237 に答える