为何QNetworkAccessManager返回的结果与浏览器返回的结果不一致?

facat 2012-07-10 09:00:10
我用QNetworkAccessManager的get方法返回以下网址
http://keyword.discuz.com/related_kw.html?ics=gbk&ocs=gbk&title=%CA%B5%D3%C3%B5%C4%C3%E2%B7%D1%D6%D0%CE%C4%B7%D6%B4%CA%B7%FE%CE%F1

QNetworkAccessManager *acc=new QNetworkAccessManager(this);
......
acc->get(QNetworkRequest(QUrl("http://keyword.discuz.com/related_kw.html?ics=gbk&ocs=gbk&title=%CA%B5%D3%C3%B5%C4%C3%E2%B7%D1%D6%D0%CE%C4%B7%D6%B4%CA%B7%FE%CE%F1")));

但返回的内容是
<?xml version="1.0" encoding="gbk" ?>
<total_response>
<svalid>36000</svalid>
<keyword>
<info>
<count>0</count>
<errno>-1</errno>
<errinfo>Zero results </errinfo>
<nextuptime>1291287160</nextuptime>
<keep>0</keep>
</info>
<result>
</result>
</keyword>
</total_response>

浏览器返回的内容是
<?xml version="1.0" encoding="gbk" ?>
<total_response>
<svalid>36000</svalid>
<keyword>
<info>
<count>2</count>
<errno>0</errno>
<nextuptime>1291287160</nextuptime>
<keep>0</keep>
</info>
<result>
<item>
<kw><![CDATA[免费]]></kw>
</item>
<item>
<kw><![CDATA[中文]]></kw>
</item>
</result>
</keyword>
</total_response>

我用的是discuz的分词服务
...全文
253 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
windywater119 2012-07-12
  • 打赏
  • 举报
回复
用smartsniff抓下包,看看用浏览器GET和用QNetworkAccessManager GET发送的数据有什么不一样。
facat 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

会不会是url的问题,title=%CA%B5%D3%C3%B5%C4%C3%E2%B7%D1%D6%D0%CE%C4%B7%D6%B4%CA%B7%FE%CE%F1这个已经被浏览器转换了,你尝试传递原始的中文字符看看给QNetworkAccessManager看看
[/Quote]
直接输入原始中文到时可以返回结果,但返回的结果还是与浏览器返回的结果不同。
facat 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

直接输入原始中文到时可以返回结果,但返回的结果还是与浏览器返回的结果不同。


怎么个不一样?是不是和浏览器的比如agent等header有关?
[/Quote]
Qt中返回的是Zero results
firefox中返回的是
<kw><![CDATA[免费]]></kw>
</item>
<item>
<kw><![CDATA[中文]]></kw>
zhu_xz 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

直接输入原始中文到时可以返回结果,但返回的结果还是与浏览器返回的结果不同。
[/Quote]

怎么个不一样?是不是和浏览器的比如agent等header有关?
yby4769250 2012-07-10
  • 打赏
  • 举报
回复
会不会是url的问题,title=%CA%B5%D3%C3%B5%C4%C3%E2%B7%D1%D6%D0%CE%C4%B7%D6%B4%CA%B7%FE%CE%F1这个已经被浏览器转换了,你尝试传递原始的中文字符看看给QNetworkAccessManager看看

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧