1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php如何调用api接口简单 在PHP中调用API接口|Post数据的方法

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

时间:2022-09-06 09:11:43

相关推荐

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

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('','/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('/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('/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;

}

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。