私は現時点で本当にイライラしているので、Guzzle の経験が豊富な人の助けを借りることができます.
完全なリンク応答ではなく、API サーバーからのコード メッセージ応答が必要な場合、ブール値を必要とする API に接続しています。
生の http クライアント (Postman) によってアクセスされる 2 つの戻り値の型の違いの例を次に示します。
私が抱えている問題は、Guzzle 6 を使用して同じリクエストを行うと、常に完全なリンク応答を取得し、適用される投稿本文のブール値を取得できないことです。ブール値のパラメーターが「true」として文字列化されているようです (これは私の推測です)。
したがって、次の 2 つの POST 要求はまったく同じ結果を生成します。
// define request parameters
$this->req_body = [
'email' => $encrypted_email,
'code' => true
];
// request url
$request_url = $api_endpoint . self::RETURN_TYPE;
// instance of Guzzle Client
$client = $this
->client();
// abstract connection
// XXX: this request needs no headers
$response = $client
->post($request_url, array(
'form_params' => $this->req_body
));
// real data
$data = $response
->getBody()
->getContents();
// send output
$this->response = $data;
そして、code
コメントアウトされたフォームパラメーターを試してみると:
// define request parameters
$this->req_body = [
'email' => $encrypted_email\\,
//'code' => true
];
// request url
$request_url = $api_endpoint . self::RETURN_TYPE;
// instance of Guzzle Client
$client = $this
->client();
// abstract connection
// XXX: this request needs no headers
$response = $client
->post($request_url, array(
'form_params' => $this->req_body
));
// real data
$data = $response
->getBody()
->getContents();
// send output
$this->response = $data;
返される API 応答は常に次のとおりです。
"{"success":{"code":200,"message":"https:\/\/webservices.bvdpetroleum.com\/users\/user-password-reset\/q8VqSAbfTOkW0EMvSTfK5qSS4zr28rSwdQy3D\/uc9wtz3+RI4LH7hDkh\/ZbTfqcC"}}"
Boolean
Guzzle 6form_params
配列で値を送信するにはどうすればよいですか? に切り替える必要がないので、どんな洞察も大歓迎ですCURL
。
ありがとう!