php curl post请求和get结果响应
对于此站点示例,是否可以使用curl获得结果(请参见下图): 以下是迄今为止我的代码,不起作用:php curl post请求和get结果响应,php,curl,Php,Curl,对于此站点示例,是否可以使用curl获得结果(请参见下图): 以下是迄今为止我的代码,不起作用: /*$params = array( "trackingIds" => "EP024922993MY" );*/ $url = rawurlencode("http://poslaju.com.my/track-trace/#trackingIds=EP024922993MY"); $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST,
/*$params = array(
"trackingIds" => "EP024922993MY"
);*/
$url = rawurlencode("http://poslaju.com.my/track-trace/#trackingIds=EP024922993MY");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$reponse = curl_getinfo($ch);
curl_close($ch);
var_dump($result);
var_dump($reponse);
第一步:我正在使用
Firebug
插件,看看会发生什么
这里,一个ajax从另一个站点获取内容
我们有这个链接
https://apis.pos.com.my/apigateway/as2corporate/api/v2trackntracewebapijson/v1/?id=EP024922993MY&Culture=En
在标题请求中,我们可以看到requireX-User-Key
现在我们必须找到X-User-Key=>我们可以查看源代码
现在我们构建源代码
<?php
function _curl($url,$post="",$usecookie = false,$_sock = false,$timeout = false,$x_user_key = false) {
$ch = curl_init();
if($post) {
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
}
if($timeout){
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,$timeout);
}
if($_sock){
curl_setopt($ch, CURLOPT_PROXY, $_sock);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-Apple-Tz: 0',
'X-Apple-Store-Front: 143444,12'
));
if($x_user_key){
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-User-Key: '.$x_user_key,
'Referer: http://poslaju.com.my/track-trace/',
'Origin: http://poslaju.com.my'
));
}
if ($usecookie) {
curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
return $result;
}
function getStr($string,$start,$end){
$str = explode($start,$string,2);
$str = explode($end,$str[1],2);
return $str[0];
}
$url = 'http://poslaju.com.my/track-trace/';
$result_curl = _curl($url,'','','','','');
$x_user_key = getStr($result_curl,'{ "X-User-Key": "','" }');
$id_track = 'EP024922993MY';
$url = 'https://apis.pos.com.my/apigateway/as2corporate/api/v2trackntracewebapijson/v1/?id='.$id_track.'&Culture=En';
$result_curl = _curl($url,'','','','',$x_user_key);
echo $result_curl;
?>
您应该解释您是如何找到该端点的,以便提出问题的人将来能够自己学习如何找到该端点。我正在更新我的答案。抱歉,仍然没有得到答案。准确地返回空结果。我正在更新如何获取X-User-Key以通过此站点的身份验证xDresult:string(21)“找到了错误的密钥”