V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shadowaix
V2EX  ›  PHP

PHP CURL 模拟请求

  •  
  •   shadowaix · 2017-07-31 16:07:51 +08:00 · 3330 次点击
    这是一个创建于 2698 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬求指导

    我想在本地用 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 直接读取,无果

    求大神指导。。。。

    9 条回复    2017-08-03 08:38:16 +08:00
    RLib
        1
    RLib  
       2017-07-31 17:09:27 +08:00
    2 确定文件写入成功了没
    3 直接用 CURLOPT_COOKIE 设置应该没问题,是不是不完整
    vonsy
        2
    vonsy  
       2017-07-31 17:09:52 +08:00   ❤️ 1
    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
        3
    shadowaix  
    OP
       2017-07-31 18:03:58 +08:00
    @vonsy 万分感谢!没想到可以把 postman 的参数也带进去,学习了。非常感谢! XD
    shadowaix
        4
    shadowaix  
    OP
       2017-07-31 18:05:10 +08:00
    @RLib 谢谢帮助,写法都是 OK 的,是思路出错了。
    ahu
        5
    ahu  
       2017-07-31 22:59:37 +08:00
    @vonsy 没理解你的意思

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

    http://photo.weibo.com/1421169327/wbphotos/large/mid/4135720731319336/pid/54b552afly1fi3i2ilwohj21kw0zkq8c
    ahu
        7
    ahu  
       2017-08-02 23:16:50 +08:00
    @vonsy 哇哦,新技能 get! 谢了!
    carlclone
        8
    carlclone  
       2017-08-03 07:53:38 +08:00 via Android
    @vonsy get
    947211232
        9
    947211232  
       2017-08-03 08:38:16 +08:00
    @vonsy get
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2080 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:13 · PVG 00:13 · LAX 08:13 · JFK 11:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.