是否可以将CURLOPT_USERPWD翻译成我可以在Android HTTP客户端中粘贴在HTTPPOST消息中的内容



目前,我正在为Pinterest开发一款Android应用程序。我想做的是从一个pinterest(刚刚调出他们的API页面)获得一个OAuth令牌。我发现某人的PHP脚本似乎允许某人使用以下方法登录:

function fetch_access_token($client_id, $client_secret, $username, $password) {
        $ch=curl_init();
        curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);                                                
        $post= array(
            "grant_type" => 'password',
            "scope"  => "read_write",
        );
        $host = "https://api.pinterest.com";
        $endpoint = "/oauth/2/access_token?client_id=$client_id&client_secret=$client_secret";
        $request_url = $host . $endpoint;
        curl_setopt($ch, CURLOPT_URL, $request_url);
        curl_setopt($ch, CURLOPT_POST,1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
        $s=curl_exec($ch);
        $info = curl_getinfo($ch);
        curl_close($ch);
        if ($info['http_code'] >= 200 and $info['http_code'] < 300) {
            list($junk, $access_token) = explode('=', $s, 2);
            $this->access_token = $access_token;
        } 
        return $s;
    }

正如您所看到的,在这个函数的第三行中,CURLOPT_USERPWD被用作curl-post选项。我已经编写了一个HttpClient包装器库,用于发出请求。我可以很容易地添加HTTPPOST参数,但是,我不知道为CURLOPT_USERPWD添加什么。我在谷歌上搜索了一下,没有发现任何有用的东西。

所以,主要的问题是,NameValuePair的名称通常应该与PHP的CURLOPT_USERPWD相对应?第二个问题是,这是一个合法的问题,还是我在这里找错了树?似乎如果这是PHP/Coll可以处理的事情,我应该能够以某种方式将其破解到我的应用程序中。

这是Authorization头。

所以对于Basic方法,它将是base64编码的"username:password"值,前面加上"Basic"。例如

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

相关内容

最新更新