2016-02-11 114 views
0

当我向我的API发出POST请求时,我在RequestException.php第107行中得到ServerException。我收到以下错误 - 服务器错误:POST http://10.10.1.40:3000/auth/register导致500 Internal Server Error response: {"statusCode":500,"errorMessage":"[object Object]"}。 我试过从REST客户端发送邮件请求,它工作。 以下是跟踪laravel guzzlehttp - RequestException.php中的服务器异常

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(); 
    } 
} 

有什么建议?

+0

您可以发布RegisterController的代码吗? –

+0

在您的问题中发布这个 –

+0

我的第一个猜测是您的服务器不满意它发送的请求。通常,请求的配置方式是通知服务器内容类型为json。如果你调用$ response = $ client-> request('POST',$ uri,['json'=> $ jsonEncodableData,'debug'=> true,]),会发生什么? –

回答

0

你是对的@ShaunBramley。我错过了发送请求中的内容类型头。添加以下代码作品 -

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