使用guzzle将发布请求发送到基于laravel的应用程序

时间:2017-07-20 08:11:11

标签: php mysql laravel guzzle

我在我的localhost中有2个laravel应用程序(用于测试目的)......我希望我的第一个laravel应用程序将POST数据发送到我的第二个laravel应用程序,然后将这些数据保存到mysql数据库。

所以这是我的第一个laravel应用程序路径

Route::get('post_request', function()
{  

    $client = new \GuzzleHttp\Client();
    $url = "http://bkculv5.local/api_post";

    $response = $client->post($url,[
        'json'=>[
            'judul' => 'title','content' => 'konten'
        ]]);

});

这是我的第二个laravel应用程序路径

Route::post('/api_post', function(Request $request){
    $judul = $request->judul;
    $content = $request->content;

    $artikel = new App\Artikel;
    $artikel->judul = $judul;
    $artikel->content = $content;

    $artikel->save();
});

我得到的是

  

服务器错误:POST http://bkculv5.local/api_post导致500 Internal Server Error响应:

当我将myfirstapplaravel.local/api_post放入浏览器

知道为什么吗?或者我在使用ajax中的帖子时是否需要使用X-CSRF-TOKEN?

更新

这是我在apache xampp中的错误日志

[Thu Jul 20 15:26:35.201109 2017] [core:error] [pid 1500:tid 604] (EAI 11002)APR does not understand this error code: AH00549: Failed to resolve server name for 36.86.63.180 (check DNS) -- or specify an explicit ServerName
[Thu Jul 20 15:26:35.439807 2017] [ssl:warn] [pid 1500:tid 604] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name
[Thu Jul 20 15:26:35.487845 2017] [mpm_winnt:notice] [pid 1500:tid 604] AH00354: Child: Starting 150 worker threads.

1 个答案:

答案 0 :(得分:0)

在您的Windows主机文件中添加您的Laravel应用程序IP,也不要忘记CORS。希望有所帮助。有时https可能会导致问题,但是他们的库中总是有API来跳过安全检查(仅用于开发目的)。

$client = new Guzzle\Http\Client();
$client->setDefaultOption('verify', '/path/to/cacert.pem');

或者,如果您需要禁用SSL验证:

$client->setDefaultOption('verify', false);