首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中添加curl HTTP标头以进行身份验证?

如何在PHP中添加curl HTTP标头以进行身份验证?
EN

Stack Overflow用户
提问于 2014-08-20 14:37:19
回答 1查看 3.3K关注 0票数 0

我想添加用于验证Udemy access.Can的headers,有人告诉我如何添加头,我已经有了客户机id和秘密密钥,我想从一个PHP页面访问这个API。https://developers.udemy.com/这里是我尝试使用的代码:

代码语言:javascript
复制
$ch = curl_init($request);
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Udemy-Client-Id:MY_ID','X-Udemy-Client-Secret:Secret'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$results= curl_exec($ch);
echo $results;

输出:

代码语言:javascript
复制
Blank Page

有人能指出问题的所在吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-20 15:43:46

正如@ does所写的,您执行两个请求(第一个是通过CURL执行的,第二个是由file_get_contents执行的)。其中CURL请求的结果实际上没有在脚本中使用。它使用没有身份验证参数的file_get_contents请求的结果。正因为如此,您得到了Unauthorized错误。

因此,您必须使用CURL请求的结果:

代码语言:javascript
复制
...
$json = json_decode($results, true);
print_r($json);

更新:

您必须确保对API请求使用有效的URL,即代码中的$request值应该是有效的URL。此外,确保通过headers传递有效的身份验证参数(Client-IdClient-Secret)。

此外,由于API是安全的,您必须通过将CURLOPT_SSL_VERIFYPEER选项设置为false来禁用SSL验证。

所以代码应该如下所示:

代码语言:javascript
复制
$ch = curl_init($request);
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Udemy-Client-Id: {YourID}','X-Udemy-Client-Secret: {YourSecret}'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$results= curl_exec($ch);
echo $results;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25407554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档