PHP CURL 模拟请求

2017-07-31 16:07:51 +08:00
 shadowaix

大佬求指导

我想在本地用 CURL 模拟这个请求:
http://ups.youku.com/ups/get.json?vid=XMTQ4ODM5Mjk2MA==&ct=10&ccode=0502&client_ip=0.0.0.0&utid=Ga3jEdWulXoCAXZwOs6IYOEY&client_ts=1501211617

用 postman (开启 interceptor ),加入 header ( Referer: http://static.youku.com/)请求正常返回数据。

但是在本地用 CURL 模拟的时候无法获得数据

已经做过如下尝试:
1,清除浏览器 cookies,postman 依然可以返回数据
2,如果与 cookie 有关,用下面的方式获取不到优酷相关 cookies curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
3,模拟优酷 cookies 直接读取,无果

求大神指导。。。。

3150 次点击
所在节点    PHP
9 条回复
RLib
2017-07-31 17:09:27 +08:00
2 确定文件写入成功了没
3 直接用 CURLOPT_COOKIE 设置应该没问题,是不是不完整
vonsy
2017-07-31 17:09:52 +08:00
postman 可以转换成各种请求格式.

~~~~
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "http://ups.youku.com/ups/get.json?vid=XMTQ4ODM5Mjk2MA%3D%3D&ct=10&ccode=0502&client_ip=0.0.0.0&utid=Ga3jEdWulXoCAXZwOs6IYOEY&client_ts=1501211617",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"postman-token: 88976d57-03fd-7950-6c65-9d0f191010dc",
"referer: http://static.youku.com/"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
~~~~
shadowaix
2017-07-31 18:03:58 +08:00
@vonsy 万分感谢!没想到可以把 postman 的参数也带进去,学习了。非常感谢! XD
shadowaix
2017-07-31 18:05:10 +08:00
@RLib 谢谢帮助,写法都是 OK 的,是思路出错了。
ahu
2017-07-31 22:59:37 +08:00
@vonsy 没理解你的意思

你是说这段代码是 pm 自己生成的?还是你手动写的?
vonsy
2017-07-31 23:49:57 +08:00
@ahu 右侧的 Code, 窗口 GENERATE CODE SNIPPETS, 左侧可以转换成各种语言 /类型的请求

http://photo.weibo.com/1421169327/wbphotos/large/mid/4135720731319336/pid/54b552afly1fi3i2ilwohj21kw0zkq8c
ahu
2017-08-02 23:16:50 +08:00
@vonsy 哇哦,新技能 get! 谢了!
carlclone
2017-08-03 07:53:38 +08:00
@vonsy get
947211232
2017-08-03 08:38:16 +08:00
@vonsy get

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379286

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX