/**
* 模拟post进行url请求
* @param string $url
* @param string $param
*/
function request_post($url = '', $param = '') {
if (empty($url) || empty($param)) {
return false;
}
$posturl = $url;
$curlpost = $param;
$ch = curl_init();//初始化curl
curl_setopt($ch, curlopt_url,$posturl);//抓取指定网页
curl_setopt($ch, curlopt_header, 0);//设置header
curl_setopt($ch, curlopt_returntransfer, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, curlopt_post, 1);//post提交方式
curl_setopt($ch, curlopt_postfields, $curlpost);
$data = curl_exec($ch);//运行curl
curl_close($ch);
return $data;
}
这是方法,
下面是具体的调用案例。
function testaction(){
$url = 'http://mobile.jschina.com.cn/jschina/register.php';
$post_data['appid'] = '10';
$post_data['appkey'] = 'cmbohpffxvr03nipkkqxaaa1vf5no4nq';
$post_data['member_name'] = 'zsjs123';
$post_data['password'] = '123456';
$post_data['email'] = 'zsjs123@126.com';
$o = ""; foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$res = $this->request_post($url, $post_data);
print_r($res);
}
这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。
这里的post是拼接出来的。
也可以改造成下面的方式。
/**
* 模拟post进行url请求
* @param string $url
* @param array $post_data
*/
function request_post($url = '', $post_data = array()) {
if (empty($url) || empty($post_data)) {
return false;
}
$o = "";
foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$posturl = $url;
$curlpost = $post_data;
$ch = curl_init();//初始化curl
curl_setopt($ch, curlopt_url,$posturl);//抓取指定网页
curl_setopt($ch, curlopt_header, 0);//设置header
curl_setopt($ch, curlopt_returntransfer, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, curlopt_post, 1);//post提交方式
curl_setopt($ch, curlopt_postfields, $curlpost);
$data = curl_exec($ch);//运行curl
curl_close($ch);
return $data;
}
将拼接也封装了起来,这样调用的时候就更简洁了。
function testaction(){
$url = 'http://mobile.jschina.com.cn/jschina/register.php';
$post_data['appid'] = '10';
$post_data['appkey'] = 'cmbohpffxvr03nipkkqxaaa1vf5no4nq';
$post_data['member_name'] = 'zsjs124';
$post_data['password'] = '123456';
$post_data['email'] = 'zsjs124@126.com'; //$post_data = array();
$res = $this->request_post($url, $post_data);
print_r($res);
}
以上就是php模拟post方式调用接口请求代码实例的详细内容。