Bor*_*nte 5 php json curl laravel
太不可思议了,我不知道我做错了什么,但我已经为此苦苦挣扎了几天。
这是来自 de 命令行的 cURL 请求:
curl -i -H "Accept: text/html" http://laravel.project/api/v1/users/4
Run Code Online (Sandbox Code Playgroud)
哪个返回
HTTP/1.1 200 OK
Server: nginx/1.6.2
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Date: Sun, 29 Mar 2015 10:33:36 GMT
Set-Cookie: laravel_session=eyJpdiI6ImNPTkZIYVJZSVRKaHBOZTR3SWh0dHc9PSIsInZhbHVlIjoiblpZYVJlN2dBY1ljejNIYUQycXpsNXRWd1I5a3JSRG8wSWdDOWlHVTMrYUcrdDBNVmVuZUNkOGtJb2M4bXFpTFF3cUdoTFZOVXBWXC82Q1luSGd5bjJBPT0iLCJtYWMiOiI0ZTEwOWQxMmVhMzY2NjI1Yzc1MTBmZmRmYjUyOGQwNDlhYzRjOTNiM2FiOWIyN2E1YjA0OTM4YTUxZmNmMzMzIn0%3D; expires=Sun, 29-Mar-2015 12:33:36 GMT; Max-Age=7200; path=/; httponly
{
"data":{
"id":4,
"name":"Helena",
"email":"hh@gmail.com",
"created_at":"2015-03-26 21:13:16",
"updated_at":"2015-03-26 21:13:16"
}
}
Run Code Online (Sandbox Code Playgroud)
所以一切看起来都很好,内容类型设置正确,响应是 JSON。但是现在看看如果我在 PHP 中使用 curl 使用 API 会发生什么。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $final_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
$result = curl_exec($ch);
return json_decode($result);
Run Code Online (Sandbox Code Playgroud)
我得到这个回应:
{#165
+"data": {#167
+"id": 4
+"name": "Helena"
+"email": "hh@gmail.com"
+"created_at": "2015-03-26 21:13:16"
+"updated_at": "2015-03-26 21:13:16"
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在没有 json_decode 的情况下返回 $result 我得到这个:
"{
"data":{
"id":4,
"name":"Helena",
"email":"hh@gmail.com",
"created_at":"2015-03-26 21:13:16",
"updated_at":"2015-03-26 21:13:16"
}
}"
Run Code Online (Sandbox Code Playgroud)
正确的响应但在引号内,我在 phpdocs 中读到 curl_opt_returntranfer 将结果作为字符串返回,但我不能是这个星球上唯一想要获取 json 的人。
请帮忙
编辑 1
这是我的 ApiController 类
curl -i -H "Accept: text/html" http://laravel.project/api/v1/users/4
Run Code Online (Sandbox Code Playgroud)
这是我的用户控制器
HTTP/1.1 200 OK
Server: nginx/1.6.2
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Date: Sun, 29 Mar 2015 10:33:36 GMT
Set-Cookie: laravel_session=eyJpdiI6ImNPTkZIYVJZSVRKaHBOZTR3SWh0dHc9PSIsInZhbHVlIjoiblpZYVJlN2dBY1ljejNIYUQycXpsNXRWd1I5a3JSRG8wSWdDOWlHVTMrYUcrdDBNVmVuZUNkOGtJb2M4bXFpTFF3cUdoTFZOVXBWXC82Q1luSGd5bjJBPT0iLCJtYWMiOiI0ZTEwOWQxMmVhMzY2NjI1Yzc1MTBmZmRmYjUyOGQwNDlhYzRjOTNiM2FiOWIyN2E1YjA0OTM4YTUxZmNmMzMzIn0%3D; expires=Sun, 29-Mar-2015 12:33:36 GMT; Max-Age=7200; path=/; httponly
{
"data":{
"id":4,
"name":"Helena",
"email":"hh@gmail.com",
"created_at":"2015-03-26 21:13:16",
"updated_at":"2015-03-26 21:13:16"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11080 次 |
| 最近记录: |