当前位置: 首页 > 知识库问答 >
问题:

从PHP中的API获取访问权限

壤驷兴朝
2023-03-14

我是PHP新手,我的任务是使用API从我的客户端获取数据..但问题是,即使在研究和尝试之后,我也无法理解这个API..

我的客户给了我API的详细信息

URL - http://222.126.31.19:8084/api/login

Username - admin123

Password - test123

这些只是一个虚拟值。我的客户还说,值应该是登录api的令牌响应,前面加上“Bearer”一词

做完研究后..我尝试了此代码,但浏览器上没有显示任何内容。我能做的任何想法或建议..

function CallAPI($method, $url, $data = false)
    {
        $curl = curl_init();

        switch ($method)
        {
            case "POST":
                curl_setopt($curl, CURLOPT_POST, 1);

                if ($data)
                    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
                break;
            case "PUT":
                curl_setopt($curl, CURLOPT_PUT, 1);
                break;
            default:
                if ($data)
                    $url = sprintf("%s?%s", $url, http_build_query($data));
        }

        // Optional Authentication:
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($curl, CURLOPT_USERPWD, "admin123:test123");

        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        $result = curl_exec($curl);

        curl_close($curl);

        return $result;
       }

我需要把这个放在纽扣上吗?抱歉,如果我在这里问,已经一天了,我不能解决它。

共有1个答案

彭开畅
2023-03-14

大多数REST API都使用某种会话ID。如果您正在登录,您将获得进一步调用的会话ID和登录凭据的可能调用列表。但是每个API的工作方式都不同。就像BT643所说的,它们必须给你某种形式的留档。我使用以下代码来访问我正在使用的一些API。如果你愿意,试试看。

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, 'http://222.126.31.19:8084/api/login');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_USERPWD, 'admin123' . ":" . 'test123');

    $out = json_decode(curl_exec($ch));

    curl_close($ch);

然后,您可以使用以下命令打印返回结果(如果有):

echo '<pre>' 
var_dump($out);
echo '</pre>';

这只是为了看看你是否从电话中得到任何结果。

 类似资料:
  • 我试图使用请求模块向https://accounts.spotify.com/api/token发出POST请求,以便获得访问令牌。我已经用我的Spotify开发帐户注册了重定向URI。这是我的快速<代码>/重定向 路由。 有人能看到这里可能出了什么问题吗?每次我得到的都是一个不伦不类的“哎呀!出了问题”错误页面。

  • 获取访问攻击是网络渗透测试的第二部分。 在本节中,我们将连接到网络,这将使我们能够发起更强大的攻击并获得更准确的信息。 如果网络不使用加密,我们可以连接到它并嗅出未加密的数据。 如果网络是有线的,我们可以使用电缆并连接到它,可能通过更改我们的MAC地址。唯一的问题是攻击目标使用加密,如WEP,WPA,WPA2。 如果我们确实遇到加密数据,我们需要知道解密它的密钥,这在本章将会学习和实践。 如果网络

  • 好的,这是我目前的build.gradle: 这就是配置。格拉德尔: 问题是:为什么我可以从config.gradle.访问howManyTables任务,但不能访问定义的变量?我想创建具有预定义值的自定义config.gradle。然后在我的Android应用程序中使用它们作为变量。(他们,根据这些数据建立了我的逻辑。无论如何,我希望这个问题很清楚;)有什么想法吗?

  • 我想连接到邮箱并下载附件。有什么方法可以接收clientID、tenantID的身份验证吗?有提供商吗?没有用户交互就能得到一个令牌?

  • 我在springboot springSecurity oauth2中有一个项目,该项目工作正常。我想在这个项目中添加KeyClope。我想在我的项目中授权用户,并从KeyClope获得。这可能吗?

  • 我遇到了使用文档签名 API 的第一个障碍,需要一些帮助。 我将docusignrestapi集合导入到Postman中。我设置了iKey、iSec、encodedKeys和codeFromUrl变量。 当尝试发送'01-授权代码授予访问令牌'post API时,我每次都得到以下响应。 我尝试从Postman中删除所有内容,包括环境,并从DocuSign中删除该应用程序,然后重新开始,以便我的所有