Post 卷曲-口吻转换

Post 卷曲-口吻转换,post,curl,guzzle,Post,Curl,Guzzle,我的卷发效果很好: curl -H "Authorization: Token 71e24088d13304cc11f5a0fa93f2a2356fc43f41" -H "Content-Type: application/json" -X POST -d '{ "reviewer": {"name": "test name", "email": "test@email.com"}, "publication": {"title": "test title", "doi": "xxx

我的卷发效果很好:

curl -H "Authorization: Token 71e24088d13304cc11f5a0fa93f2a2356fc43f41" -H "Content-Type: application/json" -X POST -d 
'{
  "reviewer": {"name": "test name", "email": "test@email.com"}, 
  "publication": {"title": "test title", "doi": "xxx"},
  "complete_date": {"month": 6, "year": 2015}
}' 
    https://my.url.com/ --insecure
并且想使用Symfony2 Guzzle的多重卷曲

到目前为止,我尝试的是:

$client = new \Guzzle\Http\Client();
$request = $client->post('https://my.url.com/');

$jsonBody = "'{ ";
$jsonBody .= '"reviewer": {"name": "'.$review['name'].'", "email":"'.$review['email'].'"}, ';
$jsonBody .= '"publication": {"title": "';

if ($review['article_title'] != '')
    $jsonBody .= $review['article_title'];
else
    $toExec .= $review['manuscript_title'];

if ($review['doi'] != '')
    $jsonBody .= '", "doi": "'.$review['doi'].'"}, ';
else
    $toExec .= '"}, ';

$jsonBody .= '"complete_date": {"month": '.$month.', "year": '.$year.'}';
$jsonBody .= "}' ";

$options = [
        'headers'   => [ 'Content-Type' => 'application/json', 'Authorization' => 'Token 71e24088d13304cc11f5a0fa93f2a2356fc43f41' ],
        'body'      => $jsonBody,
];


$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);

$response = $client->post('-d', $options);

但这不起作用,我得到了一个数组,这是我不应该得到的。

您可以尝试将授权移动到cURL

$token = '71e24088d13304cc11f5a0fa93f2a2356fc43f41';
$request->getCurlOptions()->set(CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$request->getCurlOptions()->set(CURLOPT_USERPWD, "$token:X");
X是密码,但通常不需要密码,所以只需添加一个X(随机字符)