【问题标题】:Send Authentication header with PHP使用 PHP 发送身份验证标头
【发布时间】:2014-11-07 22:40:11
【问题描述】:

我对 API 很陌生,但我需要在请求 XML 数据文件时发送一个身份验证标头。

我有以下脚本在返回 XML 文件时对其进行处理

<?php
$xml=simplexml_load_file("https://api.familysearch.org/reservation/v1/person/L81G-M81") or die("Error: Cannot create object");

print_r($xml->persons->person->baptism);
?> 

唯一的问题是它返回状态码 401 Unauthenticated 我的请求。

有人可以告诉我如何在我的请求中发送身份验证标头吗?我正在使用访问令牌进行身份验证。同样,我是使用 API 的新手,希望能得到帮助。

【问题讨论】:

    标签: php xml api


    【解决方案1】:

    您可以使用 curl 发送标头,如下所示:

    $service_url = 'https://api.familysearch.org/reservation/v1/person/L81G-M81';
    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_USERPWD, "username:password"); //Your credentials here
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
    
    $curl_res = curl_exec($curl);
    $response = json_decode($curl_res);
    curl_close($curl);
    
    var_dump($response);
    

    确认您已为 ssl 连接启用 openssl 模块。

    编辑:

    这里发送带有令牌的标头是一个 OAuth 示例。

    $headr = array();
    $headr[] = 'Content-length: 0';
    $headr[] = 'Content-type: application/json';
    $headr[] = 'Authorization: OAuth '.$accesstoken;
    
    curl_setopt($crl, CURLOPT_HTTPHEADER,$headr);
    

    要测试命令,您可以使用命令行:

    curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
    

    【讨论】:

    • 当我尝试返回 NULL 时。如果有帮助,我正在尝试使用访问令牌进行身份验证。
    猜你喜欢
    • 2012-10-22
    • 1970-01-01
    • 2012-04-24
    • 2018-10-08
    • 1970-01-01
    • 2019-02-21
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多