2013-11-12 3 views
0

Я искал в Интернете в течение нескольких дней и не смог найти хороший пример размещения данных с помощью PHP, я скачал http_pecl и попытался использовать егоPhp Сообщение Json Подобно АЯКС сообщению

Не могли бы вы помочь мне понять, что не так с моим кодом? Я считаю, что это то, что я неправильно передавать данные, так что сервер не может видеть его (Сервер ожидает данные так, что JQuery сообщение отправляет его)

$headers = array('method' => 'POST','Content-type' => 'application/json','content'=>json_encode(array('api_key'=>'5675476','grant_type' => 'password', 'username' => '12345','password'=>'12345'))); 

$r = new HttpRequest('http:/zztestapi.com/api/v5/authorize?api_key=5675476&grant_type=password&username=12345&password=12345', HttpRequest::METH_POST); 
$r->setHeaders($headers); 
$r->setContentType = 'application/json'; 
//$r->setBody(json_encode(array('api_key'=>'5675476','grant_type' => 'password',  'username' => '12345','password'=>'password'))); 
//$r->addPostFields(array('api_key'=>'5675476','grant_type' => 'password', 'username' => '12345','password'=>'password')); 
//$r->addRawPostData(json_encode(array('api_key'=>'9000000141','grant_type' => 'password', 'username' => '12345','password'=>'password'))); 
$r->setOptions(array('cookies' => array('lang' => 'de'))); 
echo $r->send()->getBody(); 
$r->send(); 

Моя цель, чтобы получить код, который посылает похож на JQuery после

$.ajax({ 
    url: 'http://zztestapi.com/api/v5/authorize', 
    type: 'POST', 
    data: {"api_key":"5675476","grant_type":"password","username":"12345","password":"12345"}, 
    dataType: 'application/json', 
    success: function(data) { 
    alert(data); 
    } 
}); 
+0

Это означает, что использование curl не помогает решить проблему, я думаю, что данные все еще не рассматриваются как данные в сообщении ajax json – prog13

ответ

0

Вы можете сделать это с локон, here этот пример:

$data = array("name" => "Hagrid", "age" => "36");                  
$data_string = json_encode($data);                     

$ch = curl_init('http://api.local/rest/users');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             

$result = curl_exec($ch); 

Надеется, что это поможет!

+0

Спасибо, я посмотрю на завиток, это завиток единственное решение? Я пытаюсь выяснить, когда это не работает с pecl, а также – prog13

+0

Вы можете попробовать с ** stream_context_create ** [здесь] (http://stackoverflow.com/a/14501952/2411728). – gryphes

+0

Я не понял, но это похоже на то, что многие версии php поставляются с включенным завитком. Вам просто нужно раскомментировать расширение php_curl в php ini, поэтому я пытаюсь это сделать – prog13

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