2017-02-22 49 views
0

У меня возникла проблема с переводом curl на запрос guzzle. В документации для создания пользователя я просто должен отправить:CloudMQTT API Guzzle

$ curl -XPOST -d '{"username":"test", "password":"super_secret_password"}' -H   "Content-Type:application/json" -u "$CLOUDMQTT_USER:$CLOUDMQTT_PASSWORD"  https://api.cloudmqtt.com/user 

В моем проекте я не могу использовать локон, поэтому я использую жрать:

$client = new Client(); 

$res = $client->post('https://api.cloudmqtt.com/user', ['auth' => ['xxx', 'xxx'], 'body' => ["username"=>"user", "password"=>"super_secret_password"]]); 

И пользователь создан, я могу увидеть новый пользователь в списке пользователей на панели, но сервер отвечает за 500 при создании пользователя. Что я делаю не так? Может быть, мой запрос жужжания неправильный формат? Я понятие не имею,

https://www.cloudmqtt.com/docs-api.html ссылки на API

ответ

1

Это будет соответствовать вашему запросу жрать на скручивание просьбы, хотя я не могу сказать наверняка, что будет решить ошибку 500:

$client = new Client([ 
    'headers' => [ 'Content-Type' => 'application/json' ] 
]); 

$response = $client->post('https://api.cloudmqtt.com/user', 
    [ 
     'auth' => ['xxx', 'xxx'], 
     'body' => json_encode(
      [ 
       "username"=>"user", 
       "password"=>"super_secret_password" 
      ] 
     ) 
    ] 
); 

Различия здесь включают настройку заголовка Content-Type, а также кодирование тела json вместо массива (что может не иметь эффекта здесь?).

EDIT: Похоже параметра json автоматически установит заголовок и json_encode тела для вас:

$client = new Client(); 

$response = $client->post('https://api.cloudmqtt.com/user', 
    [ 
     'auth' => ['xxx', 'xxx'], 
     'json' => 
      [ 
       "username"=>"user", 
       "password"=>"super_secret_password" 
      ] 
    ] 
); 

Docs

+0

Curl ошибка 18: передача закрыта с остальными выдающимися Считанные данные, еще 500 :( – MaoStream

+1

Было ли это от Guzzle? – Samsquanch

+1

Я немного изменил свой ответ, но он не должен быть функционально отличным от моего оригинала. Попробуйте его, независимо от того, на всякий случай. – Samsquanch