dongzhuo6137 2017-04-25 18:55
浏览 256

使用curl请求CSV时没有返回任何内容

I've tried a lot of combinations of headers, but still get an empty result returned from curl. I know I need to send an auth token (which I do) and use SSL (which I am). This works in the browser. Am I missing something?

$agent= 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2';
$path = "/tmp/timeline.csv";
$fp = fopen($path, 'w+');
$cookie_file_path = "../../../../private/tmp/cookies.txt";

$ch=curl_init();
$url = "https://artists.spotify.com/api/data/v1/artist/<ARTIST_URI>/timeline.csv";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt( $ch, CURLOPT_CAINFO, realpath('../../../../Users/RMG/Desktop/cacert-2017-01-18.pem'));
curl_setopt($ch, CURLOPT_SSLVERSION,2);
curl_setopt($ch, CURLOPT_REFERER, 'https://artists.spotify.com/c/artist/<ARTIST_URI>/audience');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
//curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_HEADER, 1);
$auth_header = "Authorization: Bearer ". $accessToken;
curl_setopt($ch, CURLOPT_HTTPHEADER, array($auth_header,'Accept: */*; Content-type: application/csv','Content-Disposition: attachment; filename=timeline.csv','Pragma: no-cache','Expires: 0',));
curl_setopt($ch,CURLOPT_URL,$url);

$resp = curl_exec($ch);

curl_close($ch);

if (empty($resp)){

    echo "Nothing returned from url.";

} else {

    echo $resp;

}

This works fine in a browser using the same cookies. How do I emulate the browser further / what I am missing?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值