laravel guzzlehttp – Исключение сервера в RequestException.php

Я получаю ServerException в строке 107 RequestException.php, когда я делаю POST-запрос к моему API. Я получаю следующую ошибку: Ошибка сервера: POST http://10.10.1.40:3000/auth/register привела к ошибке 500 Internal Server Error response: {"statusCode":500,"errorMessage":"[object Object]"}. Я попытался отправить почтовый запрос из REST-клиента, и он работает. Ниже приведен след

in RequestException.php line 107 at RequestException::create(object(Request), object(Response)) in Middleware.php line 65
at Middleware::GuzzleHttp\{closure}(object(Response)) in Promise.php line 199
at Promise::callHandler('1', object(Response), array(object(Promise),   object(Closure), null)) in Promise.php line 152
at Promise::GuzzleHttp\Promise\{closure}() in TaskQueue.php line 60
at TaskQueue->run(true) in Promise.php line 240
at Client->request('POST', 'http://10.10.1.40:3000/auth/register', array('body' => '{"firstName":"abc","lastName":"ab"}')) in RegisterController.php line 30
at RegisterController->postRegisterForm(object(Request))

Ниже приведен код моего контроллера

class RegisterController extends Controller{ 
    public function postRegisterForm(Request $request){ 
        $jsonData = json_encode($_POST);    
        $client = new Client(); 
        $res = $client->request('POST','10.10.1.40:3000/auth/register', ['body' => $jsonData]); 
        echo $res->getStatusCode();
        echo $res->getBody();   
    } 
}   

Какие-либо предложения?


person ashwini    schedule 11.02.2016    source источник
comment
Можете ли вы опубликовать код для RegisterController?   -  person Jilson Thomas    schedule 11.02.2016
comment
Разместите это в своем вопросе   -  person Jilson Thomas    schedule 12.02.2016
comment
мое первое предположение было бы, что ваш сервер не доволен запросом, который он отправляет. Обычно запросы настраиваются таким образом, чтобы сообщать серверу, что тип контента json. Что произойдет, если вы вызовете $response = $client-›request('POST', $uri, ['json'=›$jsonEncodableData, 'debug'=›true,]);   -  person Shaun Bramley    schedule 12.02.2016
comment
Сервер принимает порт 3000? Отправить запрос без порта. Это может сработать.   -  person Cowboy    schedule 13.02.2016


Ответы (1)


Вы правы, @ShaunBramley. Я пропустил отправку заголовка типа контента в запросе. Добавление следующего кода работает -

$headers = ['Content-Type' => 'application/json'];
$res = $client->request('POST', 'http://10.10.1.40:3000/auth/register', ['headers'=>$headers,'body' => $jsonData]);
person ashwini    schedule 15.02.2016