curl 命令行正常,使用 guzzlehttp 就返回 403 [ 2.0 版本 ]
我用命令行curl请求有数据返回,但是我用guzzlehttp写代码请求就返回403,请大神指教。
curl命令行代码:
curl -H 'host: istore.oppomobile.com' -H 'locale: zh-CN;cn' -H 'appversion: 6.0.0' -H 'appid: HUAWEI#001#cn' -H 'User-Agent: HUAWEI%2FHUAWEI+GRA-CL10%2F19%2F4.4.2%2F0%2F2%2F2101%2F6002' -H 'pid: 001' -H 'sg: 54cd1dd2f970e0d37a63b44e4cdbedcf36b3c402' -H 'ct: 1544089120405' -H 'nw: 1' -H 'ocs: HUAWEI%2FHUAWEI+GRA-CL10%2F19%2F4.4.2%2F0%2F2%2Fsamsung-user+4.4.2+KOT49H+3.8.017.0602+release-keys%2F6002' -H 'country: cn' -H 'sign: 2cfcf190f13f2c0c049b46eb49faad2c' -H 'id: 864394010242461' -H 't: 1544089120400' -H 'oak: cdb09c43063ea6bb' -H 'rsq: 19961' -H 'ch: 2101' -H 'Accept: application/x-protostuff; charset=UTF-8' --compressed 'https://istore.oppomobile.com/card/store/v3/rank/game?installRemoval=1&size=10&start=0'
guzzlehttp代码:
$data = [
'installRemoval' => 1,
'size' => 1,
'start' => 0
];
$headers = [
'host' => 'istore.oppomobile.com',
'locale' => 'zh-CN;cn',
'appversion' => '6.0.0',
'appid' => 'HUAWEI#001#cn',
'User-Agent' => 'HUAWEI%2FHUAWEI+GRA-CL10%2F19%2F4.4.2%2F0%2F2%2F2101%2F6002',
'pid' => '001',
'sg' => '54cd1dd2f970e0d37a63b44e4cdbedcf36b3c402',
'ct' => '1544089120405',
'nw' => '1',
'ocs' => 'HUAWEI%2FHUAWEI+GRA-CL10%2F19%2F4.4.2%2F0%2F2%2Fsamsung-user+4.4.2+KOT49H+3.8.017.0602+release-keys%2F6002',
'country' => 'cn',
'sign' => '2cfcf190f13f2c0c049b46eb49faad2c',
'id' => '864394010242461',
't' => '1544089120400',
'oak' => 'cdb09c43063ea6bb',
'rsq' => '19961',
'ch' => '2101',
'Accept' => 'application/x-protostuff; charset=UTF-8',
'Accept-Encoding' => 'deflate,gzip'
];
$client = new Client([
'timeout' => 5.0,
]);
$response = $client->request('GET', 'https://istore.oppomobile.com/card/store/v3/rank/game', [
'query' => $data,
'headers' => $headers,
'debug' => true
]);
$r = $response->getBody()->getContents();
var_dump($r);```
补上直接curl的代码:
protected function curlRequests($url = '', $data = '', $request_type = 'get', $header = '')
{
$ch = curl_init();
$timeout = 10;
if ($request_type == 'get') {
if (!empty($data)) {
$url .= '?' . http_build_query($data);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
if (!empty($data)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
}
}
if (!empty($header)) {
$curl_header = [];
foreach ($header as $key => $v) {
$curl_header[] = $key . ':' . $v;
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $curl_header);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//发起连接前等待
curl_setopt($ch, CURLOPT_TIMEOUT, 10);//接收数据时超时设置
$handles = curl_exec($ch);
$responseInfo = curl_getinfo($ch);
var_dump($responseInfo);die;
if ($responseInfo['http_code'] != 200) {
$error = curl_error($ch);
return false;
}
curl_close($ch);
if ($handles) {
return $handles;
} else {
return false;
}
}
共 0 个回答
蓝灵焰
最后登录:2019-09-27
在线时长:30小时4分
- 粉丝7
- 金钱4015
- 威望0
- 积分4315