我正在对Web服务进行登录调用,如果成功响应标头中的标记。是否可以将此响应从字符串转换为对象?
对于来自Web服务的其他响应,我可以使用json_decode
将响应从字符串转换为对象。然后我可以访问我需要的属性,例如X-AUTH-TOKEN。在这个例子中,json_decode返回NULL
。
希望这不是一个代码块太大,我觉得这里的每一行都与这个问题相关,或者确定我缺少什么。目前我正在努力使用explode
等来打破字符串。我认为有更优雅的方法,但我在这里找不到答案。提前致谢。
我的班级文件
public function login($username, $password) {
$url = $this->base_url()."login";
$headers = array(
"username: $username",
"password: $password"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
$response = $this->checkResponse($ch);
return $response;
}
public function checkResponse($ch) {
$response = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch) !== 0) {
return curl_errno($ch);
} else {
$arr = array($httpcode, $response);
return $arr;
}
curl_close($ch);
}
我的登录文件
$data = $user->login($username, $password);
if (is_array($data)) {
if ($data[0] !== 200) {
......
} else {
$response = json_decode($data[1);
// do stuff here
}