找回密码
 立即注册
收起左侧

小弟想用Http请求,调用百度语音的API,可是每次reply都是空

4
回复
9056
查看
[复制链接]
累计签到:615 天
连续签到:1 天
来源: 2015-4-13 22:20:08 显示全部楼层 |阅读模式
1Qter豆
  QString url="https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + API_key  + "&client_secret=" + API_secret_key;    /*QString string="http://www.baidu.com";*/    QNetworkRequest request;    request.setUrl(QUrl(url));    QNetworkAccessManager *manager= new QNetworkAccessManager(this);    manager->get(request);    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));




void Widget::replyFinished(QNetworkReply *reply){    QByteArray data = reply->readAll();    qDebug() << data;    ui->lab_access->setText(QString(data));    reply->deleteLater(); }
如果我请求url=http://www.baidu.com,那能返回有效的字符,如果是填百度接口的url,就返回是空了!(貌似百度接口返回的是个JSON包,是不是不能用QByteArray去接收?我用的是QT4!)

最佳答案

查看完整内容

一般情况下,我会先测试API本身能不能用,比如用CURL这个工具,如果有正常数据返回,说明API正常, 然后才开始写代码。 如果中间遇到问题,可以试试查看返回的http代码,比如404什么的
回复

使用道具 举报

尚未签到

2015-4-13 22:20:09 显示全部楼层
一般情况下,我会先测试API本身能不能用,比如用CURL这个工具,如果有正常数据返回,说明API正常,

然后才开始写代码。

如果中间遇到问题,可以试试查看返回的http代码,比如404什么的
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-4-13 22:29:58 显示全部楼层
Joey_Chan 发表于 2015-4-13 22:26
一般情况下,我会先测试API本身能不能用,比如用CURL这个工具,如果有正常数据返回,说明API正常,

然后才 ...

API肯定能用啊,,我刚用C#写完,可以调用的
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-4-13 22:32:40 显示全部楼层
Joey_Chan 发表于 2015-4-13 22:26
一般情况下,我会先测试API本身能不能用,比如用CURL这个工具,如果有正常数据返回,说明API正常,

然后才 ...

哥,有没有Qt详细一点的例子,,网上那些太简化了!,,,比如,我把HTTP请求发过去了,用QNetworkreply接收以后,,再怎么解析接收到的数据呢?
回复

使用道具 举报

尚未签到

2015-4-14 09:42:34 显示全部楼层
QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const

用这个能返回http状态码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了