使用 PHP file_get_contents 调用 ODATA 服务
Call ODATA service with PHP file_get_contents
我需要在 Debian 9 下用 php7.0 调用 ODATA 服务。
我正在尝试使用 "file_get_contents" 函数,但是当我 运行 脚本时
$call_opts=array(
"http"=>array(
"method"=>"GET",
"header"=>"Content-type: application/x-www-form-urlencoded",
)
);
//
$call_context=stream_context_create($call_opts);
$call_res_json=file_get_contents($url,false);
它 return 以下内容:
Warning: file_get_contents(http://<URL>): failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized
我也有用户名和密码,但是不知道怎么用
您需要在 header 中添加 "Authorization"。
HTTP 授权请求 header 包含用于验证用户身份的凭据。
Authorization: Basic <credentials>
If the "Basic" authentication scheme is used, the credentials are constructed like this:
- The username and the password are combined with a colon (aladdin:opensesame).
- The resulting string is base64 encoded (YWxhZGRpbjpvcGVuc2VzYW1l).
试试这个代码:
$username="auth_username";
$password="auth_password";
$call_opts=array(
"http"=>array(
"method"=>"GET",
"header"=>"Authorization: Basic ".base64_encode($username.":".$password)."\r\n".
"Content-Type: application/json",
);
我需要在 Debian 9 下用 php7.0 调用 ODATA 服务。
我正在尝试使用 "file_get_contents" 函数,但是当我 运行 脚本时
$call_opts=array(
"http"=>array(
"method"=>"GET",
"header"=>"Content-type: application/x-www-form-urlencoded",
)
);
//
$call_context=stream_context_create($call_opts);
$call_res_json=file_get_contents($url,false);
它 return 以下内容:
Warning: file_get_contents(http://<URL>): failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized
我也有用户名和密码,但是不知道怎么用
您需要在 header 中添加 "Authorization"。
HTTP 授权请求 header 包含用于验证用户身份的凭据。
Authorization: Basic <credentials>
If the "Basic" authentication scheme is used, the credentials are constructed like this:
- The username and the password are combined with a colon (aladdin:opensesame).
- The resulting string is base64 encoded (YWxhZGRpbjpvcGVuc2VzYW1l).
试试这个代码:
$username="auth_username";
$password="auth_password";
$call_opts=array(
"http"=>array(
"method"=>"GET",
"header"=>"Authorization: Basic ".base64_encode($username.":".$password)."\r\n".
"Content-Type: application/json",
);