2017-10-13 142 views
0

的方法卷曲PHP基本HTTP认证返回405错误

/user/role/authenticate 

在我的网络服务器API确实需要在用户名和密码的形式HTTP认证。

我使用下面的代码从不同的前端访问我的web服务器的API,这是用CodeIgniter设计的。

$URL='http://.../user/role/authenticate'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$URL); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($ch, CURLOPT_USERPWD, "testusername:testpassword"); 
$result=curl_exec ($ch);   
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
echo $status_code; 
print_r($result); 
curl_close ($ch); 

但我得到的结果,, 405:?不允许的方法”

怎么办

+1

GET是默认方法;你尝试过:curl_setopt($ ch,CURLOPT_POST,1); – lovelace

+0

我可以只添加这行代码吗?或者我必须修改someting? – faki9123

回答

0

认证需要POST方法

从我的卷曲头这个例子

"authorization: Basic ". base64_encode($username.':'.$password), 

base64是可选的,取决于你的API认证