Я действительно разочарован в данный момент и могу использовать помощь кого-то более опытного с Guzzle.Невозможно POST булевых значений в Guzzle 6 HTTP Client
Я подключаюсь к API, для которого требуется логическое значение, если я хочу получить ответ кода сообщения с сервера API вместо полного ответа на ссылку.
Вот примеры разницы между этими двумя типами возврата, как доступ по сырой HTTP-клиент (Почтальон):
Проблема, с которой я сталкиваюсь, заключается в том, что когда я делаю тот же запрос с помощью Guzzle 6, я всегда получаю полный ответ на ссылку и никогда не получаю логическое значение в используемом тело сообщения. Кажется, что логический параметр становится строгим как «истинный» (это мое предположение).
Поэтому следующие два запроса 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 6 form_params
массив? Любое понимание было бы весьма благодарным, потому что я не хочу переключаться на CURL
.
Спасибо!
Это, конечно, сделали трюк благодаря – DrewT
@DrewT любого обходному пути, когда мы хотим опубликовать файл? –
@terrylow yes, для POST файла вам нужно использовать '' multipart/form-data'' вместо '' json'' или '' form-params''. Документы описывают этот процесс здесь: http://guzzle.readthedocs.io/en/latest/request-options.html?highlight=getconfig#multipart – DrewT