【问题标题】:How to send HTTP GET request to REST API via cURL using PHP and call method from REST API with cURL如何使用 PHP 通过 cURL 将 HTTP GET 请求发送到 REST API,并使用 cURL 从 REST API 调用方法
【发布时间】:2020-04-12 17:48:36
【问题描述】:

我正在使用PHPcURL
我想向REST API 发送HTTP GET 请求,并且我想从REST API 调用方法。
如何使用PHP 通过cURL 进行制作?我有API URL 和密钥。
我必须用 URL 发送我的密钥,并且我需要在 REST API 中的方法。
我需要做什么?
同时,我必须对所有请求发送基本身份验证,我将获得 JSON 数据。
我该怎么做?

谢谢。 问候

这是我的代码

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url);    
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     
curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(   
    'Accept: application/json',
    'Content-Type: application/json')                                                           
);             
$result = curl_exec($ch);

curl_close($ch);

【问题讨论】:

  • $headers = ['Content-Type: application/json']; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  • Dilek hanım çok teşekkürler denedim fakat yine bir sonuç alamadım。 Boş ekran dönüyor.. 30 秒的最大执行时间超过了 hatası。
  • 网址 ile giriş yapmak mı istiyorsun ?使用网址登录?
  • 链接她的 istek attığımda 基本身份验证 ile 用户名 ve 密码 göndermem gerekiyor。 Aynı zamanda URL'deki methodu çağırmam gerekiyor SOAP gibi。当我向 URL 发送请求时,我必须登录基本身份验证,并且我必须调用 URL 上的方法,例如 SOAP
  • 让我试试你的代码

标签: php api curl


【解决方案1】:

我已经尝试了您的代码并将变量更改为数组。 添加了 httpheaders、用户代理。 并保存到 cookie 和 cookie 位置。 并经过测试:

$username = "username";
$password = "password";
$url = "http://localhost/html/login";
$send = "?username=".$username."&password=".$password; 

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_URL            => $url, 
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_FOLLOWLOCATION => 1,
    CURLOPT_VERBOSE        => 1,
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0',
    CURLOPT_POST => true,
    CURLOPT_USERNAME, $username,
    CURLOPT_USERPWD, $password,
    CURLOPT_POSTFIELDS => $send,
    CURLOPT_SSL_VERIFYPEER, false,
    CURLOPT_HEADER => 1,
    CURLOPT_HTTPHEADER   => array(
                                "Accept-Language: en-US;q=0.6,en;q=0.4", 
                                "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
                                "Connection: keep-alive"
                                ),
    CURLOPT_COOKIEFILE => "cookies.txt", 
    CURLOPT_COOKIEJAR => "cookies.txt",
    CURLOPT_REFERER => "http://localhost/html/login",
    CURLOPT_ENCODING => 'gzip,deflate'
)); //gzip, if modul on
curl_exec($ch);
curl_close($ch);

【讨论】:

    猜你喜欢
    • 2017-03-11
    • 2018-01-09
    • 2017-07-09
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多