dtwncxs3547 2016-07-13 15:32
浏览 116

使用PHP的HTTP基本身份验证cURL

I am trying to pull in data from an API using HTTP Basic authentication. The HTTP requests to the API are protected with HTTP Basic authentication. HTTP Basic authentication consists of a token and secret.

I have tried many different techniques, but keep getting the response that authentication was not provided. I am not sure if the token:secret method is different from username:password but I cannot get this to authenticate.

stdClass Object ( [error_message] => Authentication not provided. )

Here is the API documentation - https://www.whatconverts.com/api/

<?php


$token = "xxx";
$secret = "yyy";
$response = get_web_page("https://leads.seekmomentum.com/api/v1/leads");
$resArr = array();
$resArr = json_decode($response);
echo "<pre>"; print_r($resArr); echo "</pre>";

function get_web_page($url) {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,   // return web page
        CURLOPT_HEADER         => false,  // don't return headers
        CURLOPT_FOLLOWLOCATION => true,   // follow redirects
        CURLOPT_MAXREDIRS      => 10,     // stop after 10 redirects
        CURLOPT_ENCODING       => "",     // handle compressed
        CURLOPT_USERAGENT      => "test", // name of client
        CURLOPT_AUTOREFERER    => true,   // set referrer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,    // time-out on connect
        CURLOPT_TIMEOUT        => 120,    // time-out on response
        CURLOPT_HTTPAUTH       => "CURLAUTH_BASIC",  // authentication method
        CURLOPT_USERPWD        => "$token:$secret",  // authentication

    ); 


    $ch = curl_init($url);
    curl_setopt_array($ch, $options);

    $content  = curl_exec($ch);

    curl_close($ch);

    return $content;
}

?>
  • 写回答

2条回答 默认 最新

  • dqwd71332 2016-07-13 15:40
    关注

    This is wrong:

        CURLOPT_HTTPAUTH       => "CURLAUTH_BASIC",  // authentication method
                                  ^^^^^^^^^^^^^^^^
    

    That's a string, not a curl constant. Try

        CURLOPT_HTTPAUTH       => CURLAUTH_BASIC,  // authentication method
    

    instead.

    it's the difference between:

    define('FOO', 'bar');
    
    echo FOO // outputs bar
    echo "FOO" // outputs FOO
    
    评论

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行