连接到Reed api-php时出现问题

连接到Reed api-php时出现问题,php,api,curl,Php,Api,Curl,我似乎无法连接到reed api,这里的文档: 它指出: You will need to include your api key for all requests in a basic authentication http header as the username, leaving the password empty. 我的代码当前如下所示: $api_key = 'MY-API-KEY'; $url = ' https://www.reed.co.uk/api/1

我似乎无法连接到reed api,这里的文档:

它指出:

You will need to include your api key for all requests in a basic authentication http header as the username, leaving the password empty.
我的代码当前如下所示:

    $api_key = 'MY-API-KEY';
    $url = ' https://www.reed.co.uk/api/1.0/search?keywords=Accounts Assistant&resultsToTake=100&resultsToSkip=0'
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, urlencode($url));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Authorization: Basic '.$api_key
    ));

    $server_output = curl_exec($ch);

    curl_close($ch);

    var_dump($server_output);
输出总是:

bool(false)
我错过了什么吗?还有其他人可以连接吗? 我已经在我的浏览器中直接尝试了这个url,在弹出的身份验证框中使用了我的api密钥之后,它就工作了,所以我知道url和api密钥是正确的。

请查看这个答案()

我试图访问里德的网站,它似乎也要求一个用户名。Basic auth也是base64编码的,因此,如果不需要用户名,则以下代码段适用于您:

curl\u setopt($ch,CURLOPT\u HTTPHEADER,数组(
“授权:基本”。base64_编码($api_密钥)
));

最简单的方法是使用邮递员。一旦你调整了你的查询,它会给你许多编程语言中的代码片段

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://www.reed.co.uk/api/1.0/search?keywords=accountant&location=london",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
"authorization: Basic YOUR-AUTOMATICALLY-ENCODED-API-KEY-BY-POSTMAN",
"cache-control: no-cache"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

邮递员代码包括(,“邮递员令牌:xxxxxxx-xxxx-xxx-xx-xx”)。删除它。

这是URL参数中的空格

应该是:

$url = 'https://www.reed.co.uk/api/1.0/search?keywords=Accounts%20Assistant&resultsToTake=100&resultsToSkip=0'

您的连接正确吗?对不起,这是什么意思?您的授权标题可能应该是
“authorization:Basic”.base64\u encode($your\u api\u key.:”)
。false表示连接失败。您是否能正常工作?您是否在删除空间之前和之后测试了您的解决方案?是,两种方法都进行了测试,是空间给我造成了错误。我一删除空间,API就可以很好地工作了。我现在确保首先对关键字字符串进行URL编码。