Sending json data to a remote server – howto
If you’re sending json requests there are different possible solutions on programming with php. Here some different explained:
1. Using Streams
‚method‘ => ‚POST‘,
‚content‘ => json_encode( $data ),
‚header’=> „Content-Type: application/json\r\n“ .
„Accept: application/json\r\n“
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result);
var_dump($response);
2. Raw HTTP Post
Using Zend Framework’s HTTP client: http://framework.zend.com/manual/en/zend.http.client.advanced.html#zend.http.client.raw_post_data
$json = json_encode($data);
$client = new Zend_Http_Client($url);
$client->setRawData($json, ‚application/json‘)->request(‚POST‘);
var_dump($client->request()->getBody());
3. Using Curl
<?php $content = json_encode($data); $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json")); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //curl error SSL certificate problem, verify that the CA cert is OK $result = curl_exec($curl); $response = json_decode($result); var_dump($response); curl_close($curl); ?>
4. Using Ajax
var data = <?php echo json_encode($data) ?>; var url = '<?php echo $url ?>'; jQuery.ajax({ type: "POST", url: url, data: JSON.stringify(data), contentType: "application/json; charset=utf-8", dataType: "json", success: function(data){ var jsonObj = jQuery.parseJSON(data); alert(jsonObj.encPassword); }, failure: function(errorMsg) { alert(errorMsg); } });
Please share this article von facebook & google plus or where you want, thank you!