吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1000|回复: 29
收起左侧

[已解决] php请求接口代码问题

[复制链接]
comcn 发表于 2022-8-19 16:22
本帖最后由 comcn 于 2022-8-26 14:46 编辑

需要请求百度的一个api,文档地址:https://dev2.baidu.com/content?sceneType=0&pageId=100732&nodeId=595&subhead=

这个接口需要先请求access接口,获取accesstoken,这个我已经拿到了

我借鉴的是apipost工具提供的代码,直接在工具请求获取的是json格式,但是代码运行后获取的是object

[PHP] 纯文本查看 复制代码
var_dump( is_object($response)); //得出结果是:[color=#000][font="][size=3]bool(true)[/size][/font][/color]


22.png

apipost提供的代码:
[PHP] 纯文本查看 复制代码
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'User-Agent' => 'Apipost client Runtime/+https://www.apipost.cn/',
    'Content-Type' => 'application/json'
);
$data = '{ "header": { "authorityType": 5, "userName": "123", "accessToken": "JZCI6IjQ5NjAzNDU5NjU5NTg1NjE3OTQiLCJleHAiOjE2NjA5NjE3NjUsImp0aSI6IjY3Njc5" }, "body": { "reportType": 999241, "userIds": [], "timeUnit": "DAY", "startDate": "2022-08-01", "endDate": "2022-08-18", "columns": [], "startRow": null, "rowCount": null, "needSum": null } }';
$response = Requests::post('https://api.baidu.com/json/sms/service/OpenApiReportService/getReportData', $headers, $data);


请问如何输出json格式呢,我使用json_encode()仍然不行

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| comcn 发表于 2022-8-19 16:25
本帖最后由 comcn 于 2022-8-19 16:26 编辑

上面代码实际是无法运行的,我改成了下面这个,大佬可以在本地试下,拿不到数据无所谓,可以在浏览器输出json格式就行
下载地址:https://2xb.lanzoub.com/iZ7YM09u9ygj


[PHP] 纯文本查看 复制代码
<?php
require_once  './rmccue/requests/src/Autoload.php';
WpOrg\Requests\Autoload::register();

$headers = array(
     "Accept-Encoding"=> "gzip, deflate",
    'Content-Type' => 'application/json',
     "Accept"=> "application/json",
);
$data = '{ "header":{ "authorityType": 5, "userName": "123", "accessToken": "c5MjEzNjY2NzA2MTgzODgifQ.x1lT2AtsvjNx1i3gqdrcqiQ1L6Xtibdl_yKTFFiZGDuYaOn3BJ8WFtYiHQKvABIs" }, "body":{ "reportType": 999241, "userIds": [], "timeUnit": "DAY", "startDate": "2022-07-01", "endDate": "2022-08-18", "columns": [], "startRow": null, "rowCount": null, "needSum": null } }';
$response = WpOrg\Requests\Requests::post('https://api.baidu.com/json/sms/service/OpenApiReportService/getReportData', $headers, $data);
归隐小赵 发表于 2022-8-19 16:29
看一下Requests::post这个类,返回的有哪些方法,通过方法获取返回值
 楼主| comcn 发表于 2022-8-19 16:42
归隐小赵 发表于 2022-8-19 16:29
看一下Requests::post这个类,返回的有哪些方法,通过方法获取返回值

找不到,返回的格式不是数组,对象转数组也用不了
头像被屏蔽
88868 发表于 2022-8-19 16:44
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| comcn 发表于 2022-8-19 16:47
88868 发表于 2022-8-19 16:44
直接return json();就可以了。我用你的数据测试了

我直接建的php,没有使用tp框架,直接json()报错,在tp框架可以,但也不显示json格式,因为我Chrome安装了json格式化插件,json格式很容易看出来。

错误信息:
Fatal error: Uncaught Error: Call to undefined function json() in D:\phpstudy_pro\WWW\zi.com\api.php
归隐小赵 发表于 2022-8-19 16:48
comcn 发表于 2022-8-19 16:42
找不到,返回的格式不是数组,对象转数组也用不了

返回的是个对象,你直接看这个对象包含了哪些方法,肯定会有一个方法,或者公共参数,是可以获取返回值的,你去看他的对象实现,都是对象了,你还在这纠结数组-_-||
头像被屏蔽
88868 发表于 2022-8-19 16:48
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
88868 发表于 2022-8-19 16:49
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| comcn 发表于 2022-8-19 16:50
归隐小赵 发表于 2022-8-19 16:48
返回的是个对象,你直接看这个对象包含了哪些方法,肯定会有一个方法,或者公共参数,是可以获取返回值的 ...

关键是找不到文件,引用的是开源类库,https://hub.fastgit.xyz/WordPress/Requests

代码看不太懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-15 16:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表