当前位置: 首页 > 工具软件 > api-php > 使用案例 >

php如何调用api接口简单,在PHP中调用API接口|Post数据的方法

伍玮
2023-12-01

PHP中调用接口

如:http://localhost/operate.php?act=get_user_list&type=json

在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。

你只需要在你PHP代码中执行这条链接他就会返回。

GET方式的直接使用

$file_contents = file_get_content(‘http://localhost/operate.php?act=get_user_list&type=json’)

POST方式得用下面的(需要开启PHP curl支持)。

$url = 'http://localhost/operate.php?act=get_user_list&type=json';

$ch = curl_init ();

curl_setopt ( $ch, CURLOPT_URL, $url );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );

curl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交

$file_contents = curl_exec ( $ch );

curl_close ( $ch );

post数据的三种方法

// PHP POST数据的三种方法

// php有三种方法可以post数据,分别为Curl、socket、file_get_contents:

/**

* Socket版本

* 使用方法:

* $post_string = "app=socket&version=beta";

* request_by_socket('facebook.cn','/restServer.php',$post_string);

*/

function request_by_socket($remote_server, $remote_path, $post_string, $port = 80, $timeout = 30)

{

$socket = fsockopen($remote_server, $port, $errno, $errstr, $timeout);

if (!$socket) die("$errstr($errno)");

fwrite($socket, "POST $remote_path HTTP/1.0\r\n");

fwrite($socket, "User-Agent: Socket Example\r\n");

fwrite($socket, "HOST: $remote_server\r\n");

fwrite($socket, "Content-type: application/x-www-form-urlencoded\r\n");

fwrite($socket, "Content-length: " . (strlen($post_string) + 8) . '\r\n');

fwrite($socket, "Accept:*/*\r\n");

fwrite($socket, "\r\n");

fwrite($socket, "mypost=$post_string\r\n");

fwrite($socket, "\r\n");

$header = "";

while ($str = trim(fgets($socket, 4096))) {

$header .= $str;

}

$data = "";

while (!feof($socket)) {

$data .= fgets($socket, 4096);

}

return $data;

}

/**

* Curl版本

* 使用方法:

* $post_string = "app=request&version=beta";

* request_by_curl('http://facebook.cn/restServer.php',$post_string);

*/

function request_by_curl($remote_server, $post_string)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $remote_server);

curl_setopt($ch, CURLOPT_POSTFIELDS, 'mypost=' . $post_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_USERAGENT, "Jimmy's CURL Example beta");

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

/**

* 其它版本

* 使用方法:

* $post_string = "app=request&version=beta";

* request_by_other('http://facebook.cn/restServer.php',$post_string);

*/

function request_by_other($remote_server, $post_string)

{

$context = array(

'http' => array(

'method' => 'POST',

'header' => 'Content-type: application/x-www-form-urlencoded' .

'\r\n'.'User-Agent : Jimmy\'s POST Example beta' .

'\r\n'.'Content-length:' . strlen($post_string) + 8,

'content' => 'mypost=' . $post_string)

);

$stream_context = stream_context_create($context);

$data = file_get_contents($remote_server, false, $stream_context);

return $data;

}

?>

 类似资料: