卷曲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:?不允许的方法”
怎么办
答
认证需要POST方法
从我的卷曲头这个例子
"authorization: Basic ". base64_encode($username.':'.$password),
base64是可选的,取决于你的API认证
GET是默认方法;你尝试过:curl_setopt($ ch,CURLOPT_POST,1); – lovelace
我可以只添加这行代码吗?或者我必须修改someting? – faki9123