&引用;“需要授权”;使用PHP和cURL连接到自定义API
我正在创建我的第一个API,合作伙伴需要使用cURL从他们的服务器访问它。因此,在创建它时,我使用服务器1创建测试连接脚本,服务器2托管API。在服务器#1上,我有:&引用;“需要授权”;使用PHP和cURL连接到自定义API,php,api,rest,curl,Php,Api,Rest,Curl,我正在创建我的第一个API,合作伙伴需要使用cURL从他们的服务器访问它。因此,在创建它时,我使用服务器1创建测试连接脚本,服务器2托管API。在服务器#1上,我有: <?php $url = "http://example.net/api/"; $data['api_key'] = "AFsASfafasasf"; $data['api_secret'] = "faskakfokfl3a"; $ch = curl_init($url); curl_setopt($ch, CURL
<?php
$url = "http://example.net/api/";
$data['api_key'] = "AFsASfafasasf";
$data['api_secret'] = "faskakfokfl3a";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
在服务器#2上的API文件中,我有以下内容(只是为了测试连接):
问题是,当我在服务器#1上运行测试脚本时,我得到以下结果:
“需要授权
此服务器无法验证您是否有权访问请求的文档。可能是您提供了错误的凭据(例如,错误的密码),或者您的浏览器不了解如何提供所需的凭据
此外,尝试使用ErrorDocument处理请求时遇到401 Authorization Required错误。“
这肯定与cURL有关,因为Server#1将与任何其他基本PHP脚本一起工作
我在网上看到的所有示例似乎都不需要授权……那么,我需要在CURLOPT字段中设置什么,还是在.htaccess中缺少什么
谢谢 401当服务器需要某种身份验证才能访问网页时,会出现错误,在大多数情况下,这是基本身份验证 请确认您的服务器#1上是否配置了基本身份验证?若服务器#1需要基本身份验证,那个么浏览器将第一次询问它,然后它将存储凭据,并在每次后续请求中传递凭据 如果配置了基本身份验证,那么下面将使用cURL传递凭据
curl_setopt($ch,CURLOPT_USERPWD,$username.:“$password) 401当服务器需要某种身份验证才能访问网页时,会出现错误,在大多数情况下,这是基本身份验证 请确认您的服务器#1上是否配置了基本身份验证?若服务器#1需要基本身份验证,那个么浏览器将第一次询问它,然后它将存储凭据,并在每次后续请求中传递凭据 如果配置了基本身份验证,那么下面将使用cURL传递凭据
curl_setopt($ch,CURLOPT_USERPWD,$username.:“$password) 在运行API的同一台服务器上运行cURL命令时,我遇到了相同的错误 我最终发现httpd.conf中的虚拟主机设置是为单个网关IP设置的,而不是127.0.0.1 因此,假设是apache,我认为服务器2调用服务器1的方式可能与服务器1上的apache设置冲突
当我尝试在运行API的同一台服务器上运行cURL命令时,我遇到了相同的错误 我最终发现httpd.conf中的虚拟主机设置是为单个网关IP设置的,而不是127.0.0.1 因此,假设是apache,我认为服务器2调用服务器1的方式可能与服务器1上的apache设置冲突
<?php
echo "Testing API...";
echo $_POST['api_key'];
echo $_POST['api_secret'];
?>