已知
这样的提交方式应该难到不少小白开发者,毕竟不是常见的post提交方式,并且没有实例,只有一段段的文字说明。
我是直接参考阿里云提供的案例写代码。
还有这些看似复杂的sign计算方式,把需要用的参数(除了key值)弄到一个数组再排序,排序完之后的新数组重新拼接。(我代码只是个例子,并没有做这一步)
上代码
[PHP] 纯文本查看 复制代码 <?php
$host = "http://www.不提供.com";
$path = "/api/customer";
$method = "POST";
$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/json; charset=UTF-8");
$querys = "";
$key = 'ca11582f8ebc07330dc9c508888888';
$customer_id = '10000';
$timestamp =time();
$sign = md5($key.'customer_id'.$customer_id.'timestamp'.$timestamp);
$arr['customer_id'] = $customer_id;
$arr['timestamp'] = $timestamp;
$arr['sign'] = $sign;
$bodys=json_encode($arr);
$url = $host . $path;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);//当 HTTP 状态码大于等于 400,TRUE 将将显示错误详情。 默认情况下将返回页面,忽略 HTTP 代码。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//TRUE 将 curl_exec() 获取的信息以字符串返回,而不是直接输出。
if (1 == strpos("$".$host, "https://"))
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
$output = curl_exec($curl);
curl_close($curl);
var_dump($output);
?>
如果文章对你有用,请点个免费评分。
转载无需授权,标明作者即可 @勤勤学长
|