doushen4719 2015-04-07 20:11
浏览 28
已采纳

curl的问题无法弄清楚

i am having problem with curl

below is code

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.paypal.com/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $workString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: www.paypal.com"));
$output = curl_exec($ch);
curl_close($ch);

i get blank value for $output when i change url from paypal to google.co.in it works why so is paypal behaving funny on my server or i am missing something

  • 写回答

1条回答 默认 最新

  • dquv73115 2015-04-09 20:21
    关注

    You are missing the Response:

    Cache-Control: max-age=0, no-cache, no-store, must-revalidate
    Connection: keep-alive, Transfer-Encoding
    Content-Encoding: gzip
    Content-Type: text/html
    DC: dcg11-origin-www-2.paypal.com
    Date: Thu, 09 Apr 2015 20:00:04 GMT
    Location: https://www.paypal.com/home
    Pragma: no-cache
    Server: Apache
    Set-Cookie: cwrClyrK4LoCV1fydGbAxiNL6iG=S9TU1gy_lJEUvQYrEjEdnxVIcMALl-A4QetP0un3pgYUjRvcqyV3PPcZfdmXw-Gndz2OpzOwWjVxel3EHUlf2UByp5YvehcKVr0j7Cc6bWGV7-rzs92RJPhyzkaHNvee0iTM4lSH1BqczOa0fALSl6SBiPsdCURen6MjyC9HRs2ntATq9CBbtaI6hJG2gPVJUanxZ3JTjxkkHcigCXmXJjjDyt8SSs0pQdlw8Bm2_NqGGcd7pOZW3H-AEaG; domain=.paypal.com; path=/; Secure; HttpOnly
    KHcl0EuY7AKSMgfvHl7J5E7hPtK=ny66wHhnb7-YsQ5Khe83cIfgHbL2sOuqh4501OqRIsavyJB1_k9paRgZmyFdqxEqed9jGwPrvOpMgP8W; expires=Wed, 04-Apr-2035 20:00:04 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
    cookie_check=yes; expires=Sun, 06-Apr-2025 20:00:04 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
    consumer_display=USER_HOMEPAGE%3d0%26USER_TARGETPAGE%3d0%26USER_FILTER_CHOICE%3d0%26BALANCE_MODULE_STATE%3d1%26GIFT_BALANCE_MODULE_STATE%3d1%26LAST_SELECTED_ALIAS_ID%3d0%26SELLING_GROUP%3d1%26PAYMENT_AND_RISK_GROUP%3d1%26SHIPPING_GROUP%3d1%26HOME_VERSION%3d1%26MCE2_ELIGIBILITY%3d4294967295; expires=Sun, 06-Apr-2025 20:00:04 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
    Apache=10.16.0.148.1428609604137838; path=/; expires=Sat, 01-Apr-45 20:00:04 GMT
    X-PP-SILOVER=name%3DLIVE9.WEB.1%26silo_version%3D880%26app%3Dappdispatcher%26TIME%3D1155147349; domain=.paypal.com; path=/; Secure; HttpOnly
    X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT
    Apache=10.16.0.11.1428609604131575; path=/; expires=Sat, 01-Apr-45 20:00:04 GMT
    AKDC=dcg11-origin-www-2.paypal.com; expires=Thu, 09-Apr-2015 20:30:04 GMT; path=/; secure
    Strict-Transport-Security: max-age=63072000
    Transfer-Encoding: chunked
    Vary: Accept-Encoding
    X-Frame-Options: SAMEORIGIN
    

    Two of the things you needed:

    Notice in the response header: Location: https://www.paypal.com/home

    The url returned a 302 redirect url_getinfo($ch,CURLINFO_HTTP_CODE)

    $status = intval(curl_getinfo($ch,CURLINFO_HTTP_CODE));
    if ($status > 299 && $status < 400){
      $location = curl_getinfo($ch,CURLINFO_REDIRECT_URL );
    }
    

    This is because you did not set CURLOPT_FOLLOWLOCATION

    The first thing to try:


    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    

    with the above you may need the cookie jar.

    CURLOPT_COOKIEJAR
    CURLOPT_COOKIEFILE
    

    And you may need additional Request Header key values, such as Accept:

    $request = array();
    $request[] = 'Host: www.paypal.com';
    $request[] = 'User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:39.0) Gecko/20100101 Firefox/39.0';
    $request[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    $request[] = 'Accept-Language: en-US,en;q=0.5';
    $request[] = 'Accept-Encoding: gzip, deflate';
    $request[] = 'DNT: 1';
    $request[] = 'Connection: keep-alive';
    $request[] = 'Pragma: no-cache';
    $request[] = 'Cache-Control: no-cache';
    $request[] = 'Cookie: xxxx
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, $request);
    

    You next request if necessary would be to the redirect location.:

    These would be your Request header key values:
    NOTE: The cookie values shown have been edited and are not valid

    Host: www.paypal.com
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:39.0) Gecko/20100101 Firefox/39.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    DNT: 1
    Cookie: cwrClyrK4LoCV3fydGbAxiNL6iG=S9TU1gy_lJEUvQYrEjEdnxVIcMALl-A4QetP0un3pgYUjRvcqyV3PPcZfdmXw-Gndz2OpzOwWfVxel3EHUlf2UByp5YvehcKVr0j7Cc6bWGV7-rzs92RoaH1BqczOa0fALSl6SBiPsdCURen6MjyC9HRs2nta0digPVJUanxZ3JTjxkkHcigCXwXJjjDyt8SSs0pQdlw8Bm2_NqGGcd7pOZW3H-AEaG; KHcl0EuY7AKSMgfvHl7J5E7hPtK=ny66wHhnb7-YsQ5Khe83cIfgHbL2sOuqh4501OqRIsavyJB1_k9paRgZmyFdqxEqed9jGwPrvOpMgP8W; cookie_check=yes; consumer_display=USER_HOMEPAGE%3d0%26USER_TARGETPAGE%3d0%26USER_FILTER_CHOICE%3d0%26BALANCE_MODULE_STATE%3d1%26GIFT_BALANCE_MODULE_STATE%3d1%26LAST_SELECTED_ALIAS_ID%3d0%26SELLING_GROUP%3d1%26PAYMENT_AND_RISK_GROUP%3d1%26SHIPPING_GROUP%3d1%26HOME_VERSION%3d1%26MCE2_ELIGIBILITY%3d4294967295; Apache=10.16.0.11.1428609604131575; X-PP-SILOVER=name%3DLIVE9.WEB.1%26silo_version%3D880%26app%3Dappdispatcher%26TIME%3D1155147349; AKDC=dcg11-origin-www-2.paypal.com
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥15 统计大规模图中的完全子图问题
  • ¥15 使用LM2596制作降压电路,一个能运行,一个不能
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式