2015-07-08 8 views
2

У меня есть завиток, который хорошо работает:Curl жрать преобразование

curl -H "Authorization: Token 71e24088d13304cc11f5a0fa93f2a2356fc43f41" -H "Content-Type: application/json" -X POST -d 
'{ 
    "reviewer": {"name": "test name", "email": "[email protected]"}, 
    "publication": {"title": "test title", "doi": "xxx"}, 
    "complete_date": {"month": 6, "year": 2015} 
}' 
    https://my.url.com/ --insecure 

И хотел бы использовать мульти завиток из Symfony2 жрать

То, что я пытался до сих пор:

$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); 

Но это не работает, я получаю массив, в результате которого я не должен.

ответ

1

Возможно, вы попытаетесь переместить свое разрешение на cURL.

$token = '71e24088d13304cc11f5a0fa93f2a2356fc43f41'; 
$request->getCurlOptions()->set(CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
$request->getCurlOptions()->set(CURLOPT_USERPWD, "$token:X"); 

X это пароль, но часто там нет необходимости, так что вы просто добавить X (случайный характер)

Смежные вопросы