首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST API新特性

REST API新特性
EN

Stack Overflow用户
提问于 2011-05-19 20:14:51
回答 3查看 961关注 0票数 6

基本上,我被指派用PHP构建一个REST请求应用程序,使用第三方REST API。做POST、GET等看起来很简单,但是它们有一个叫做Authorization header的东西,它使用了一个Digest令牌。如何通过get传递?

例如:

代码语言:javascript
复制
$url = "http:/domain/core.xml";
$response = file_get_contents($url);
echo $response;

返回:未找到摘要身份验证头

在FireFoxes POSTER中,我只需添加标题"Authorization“和值”Digest0:codehere“,它就可以工作了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-19 20:20:52

请参阅file_get_contents()

代码语言:javascript
复制
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )

第三个参数$context允许您添加由stream_context_create()创建的上下文。参见HTTP context options。在那里,您可以找到一个选项header,它允许您设置要由您发送的请求使用的标头,在本例中为Authorization-header

票数 9
EN

Stack Overflow用户

发布于 2011-05-19 20:21:29

您可以使用curl进行Rest调用。对于您的帮助,这些是帮助链接:auth token using curl

What is Curl

票数 5
EN

Stack Overflow用户

发布于 2011-12-15 16:36:21

代码语言:javascript
复制
<?php
$url ="http://example.com/target.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD,'username:password');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
?>

在服务器端(target.php),我们可以访问用户名和密码,如下所示。

代码语言:javascript
复制
$USERNAME = $_SERVER['PHP_AUTH_USER'];
$PASSWORD = $_SERVER['PHP_AUTH_PW'];

在某些情况下,$_SERVER变量对您的本地服务器不可用。所以请将以下代码放入您的HTACCESS中。HTTP授权模块将在PHP中工作。原因是我们必须将其作为单独的模块进行安装

代码语言:javascript
复制
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6058457

复制
相关文章

相似问题

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