Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php guzzle ver 6 post方法不起作用_Php_Guzzle - Fatal编程技术网

Php guzzle ver 6 post方法不起作用

Php guzzle ver 6 post方法不起作用,php,guzzle,Php,Guzzle,正在使用postman(原始格式数据,应用程序/json类型) 狂饮 url-http://vm.xxxxx.com/v1/hirejob/ { "company_name":" company_name", "last_date_apply":"06/12/2015", "rid":"89498" } 因此,我得到了201响应 但是狂饮 $client = new Client(); $data = array(); $

正在使用postman(原始格式数据,应用程序/json类型) 狂饮

url-http://vm.xxxxx.com/v1/hirejob/
{
        "company_name":" company_name",
        "last_date_apply":"06/12/2015",
        "rid":"89498"
}
因此,我得到了201响应
但是狂饮

    $client = new Client();
    $data = array();
    $data['company_name'] = "company_name";
    $data['last_date_apply'] = "06/12/2015";
    $data['rid'] = "89498";
    $url='http://vm.xxxxx.com/v1/hirejob/';
    $data=json_encode($data);
    try {
            $request = $client->post($url,array(
                    'content-type' => 'application/json'
            ),array());

        } catch (ServerException $e) {
          //getting GuzzleHttp\Exception\ServerException Server error: 500
        }
我在
vendor/guzzlehttp/guzzle/src/Middleware.php

第69行

 ? new ServerException("Server error: $code", $request, $response)

您需要使用json_encode()json_FORCE_对象标志作为第二个参数。像这样:

$data=json\u encode($data,json\u FORCE\u OBJECT)

如果没有JSON_FORCE_OBJECT标志,它将使用括号符号而不是大括号符号创建JSON数组

另外,尝试发送如下请求:

$request = $client->post($url, [
    'headers' => [ 'Content-Type' => 'application/json' ],
    'body' => $data
]);

您实际上并没有设置请求主体,但可以说传输JSON数据的最简单方法是使用专用请求选项:

$request = $client->post($url, [
    'json' => [
        'company_name' => 'company_name',
        'last_date_apply' => '06/12/2015',
        'rid' => '89498',
    ],
]);

$data=json\u encode($data,json\u FORCE\u OBJECT);不工作请将此与上面的答案结合使用。您必须设置要发送的数据,并且需要将其正确格式化为JSON对象。我检查的是这是JSON对象。我刚刚更新了我的答案。现在看看这个请求是否对你有效。@RahulG在你的问题中没有提到这一点。@RahulG我已经更新了我的答案;它应该与您保存的最新版本的libthnx jack配合使用。可能的副本是