public function testapiOp()
{
$order = array(
'order_sn' => '15456216474946',
'dealtype'=> 1,
'goods_weight'=>0.2222,
'goods_nweight'=>0.33333,
'pfreight_no'=> '55555555555',
);
//整理需要推送的数据
$data['seller_name'] = base64_encode('123456');
$data['api_key'] = base64_encode('123456789');
$data['order'] = base64_encode(base64_encode(json_encode($order)));
//设置接口地址
$url = '****************';
//使用整理好的数据和接口地址,调用封装好的私有方法vpost()
$goods_info = $this->vpost($url, $data);
$goods_info = json_decode($goods_info, true);
//打印模拟访问地址返回的数据
print_r($goods_info);
}
private function vpost($url, $data)
{
//如需要通过头文件提交数据,按照以下变量的格式拼接头文件变量;不需要可以删除该变量
$header_datas = array(
'api-name:' . $api_name,
'api-key:' . $apr_key,
'arrange: is_arrange',
);
//使用curl有多种写法,下面是其中两种:
//写法一:
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包,$data就是需要post上去的数据(以json格式上传)
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_HTTPHEADER, $header_datas);//设置文件头内容,$header_datas就是需要设置的文件头内容,*注意书写格式*注意书写格式*注意书写格式
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作,并且获取模拟网上返回的数据
// 写法二:
// $curl = curl_init();
// $options = array(
// CURLOPT_URL => $url,
// CURLOPT_SSL_VERIFYPEER => 0,
// CURLOPT_SSL_VERIFYHOST => 1,
// CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
// CURLOPT_FOLLOWLOCATION => 1,
// CURLOPT_AUTOREFERER => 1,
// CURLOPT_POST => 1,
// CURLOPT_POSTFIELDS => $data,
// CURLOPT_TIMEOUT => 30,
// CURLOPT_HEADER => 0,
// CURLOPT_RETURNTRANSFER => 1
// );
// curl_setopt_array($curl , $options);
// $tmpInfo = curl_exec($curl);
$err = '';
if (curl_errno($curl)) {
$err = 'Errno-' . curl_error($curl);//捕抓异常
}
$httpStatusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if (200 !== $httpStatusCode) {
return $httpStatusCode;
}
curl_close($curl); // 关闭CURL会话
if (!empty($err)) {
return $err;
}
return $tmpInfo;// 返回数据
}
PHP 使用 curl 测试接口(模拟请求)用例
最新推荐文章于 2023-09-12 06:42:18 发布