2010-11-23 44 views
3

我有要求应用程序必须通过HTTPS POST进行REST API调用。我是cakephp的新手。我在想如果我可以使用httpsocket进行https呼叫。如何使CakePHP中的https发布请求

我很感激任何帮助。

谢谢。

回答

1

如果已经启用了PHP的卷曲模块:

<?php 
// create a new cURL resource 
$ch = curl_init(); 

$data = array('Your' => 'Data'); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 

// grab URL and pass it to the browser 
$result = curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 

print_r($result); // output result for all the kings 
?> 
+3

你可以使用HttpSocket简化你的代码,它很好地利用cakephp – Ish 2010-11-23 22:06:15

+3

HttpSocket对于简单任务有点臃肿。 – 2010-11-24 09:59:40

21

您可以使用任何这些

CAKEPHP SOCKET

// Use either of the following two: 
App::import('Core', 'HttpSocket'); // Cake 1.x 
App::uses('HttpSocket', 'Network/Http'); // Cake 2.x 

$HttpSocket = new HttpSocket(); 
$results = $HttpSocket->post('www.somesite.com/add', array('name' => 'test', 'type' => 'user')); 
//$results contains what is returned from the post. 

CURL

$url = 'http://domain.com/get-post.php'; 
$fields = 'var1=value1&var2=value2'; 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 
$result = curl_exec($ch); 
curl_close($ch); 

JAVASCRIPT如果你想这在客户端