• 8965阅读
  • 6回复

xdjm救命,头都大了,QHttp获取网页源代码 [复制链接]

上一主题 下一主题
离线anfouo
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-19
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
QHttp qhttp("http://www.sohu.com");
qhttp.get("/index.html");
QByteArray arr=qhttp.readAll();

这样写是对的么,好像什么也得不到啊,各位看看有什么问题。网上基本上搜不到这方面的信息,或者哪位大大能够给出一个别的方法根据url获取源代码也行,最好有代码啊,哪怕只有两行,qt资料还是太少,简单的问题也要费很大的功夫去搞,先谢谢了!
离线cahwxy

只看该作者 1楼 发表于: 2010-07-19
接受数据可能需要时间,你需要在完成的时候 读取数据
    connect(http, SIGNAL(requestFinished(int, bool)),this, SLOT(httpRequestFinished(int, bool)));
离线yj_yulin

只看该作者 2楼 发表于: 2010-07-19
for new applications, it is recommended to use QNetworkAccessManager and QNetworkReply, as those classes possess a simpler, yet more powerful API and a more modern protocol implementation.
离线tootzoe
只看该作者 3楼 发表于: 2010-07-19
  1. /**************************************************************************
  2. **   Copyright @ 2010 TOOTzoe.com
  3. **   Special keywords: Administrator 2010-7-11 2010
  4. **   Environment variables: %$VARIABLE%
  5. **   To protect a percent sign, use '%'.
  6. **
  7. **
  8. **   E-mail : toot@tootzeo.com
  9. **   Tel    : 13712943464
  10. **   Website: http://www.tootzoe.com
  11. **
  12. **************************************************************************/
  13. //------------------------------------------------------------------------
  14. #include <QtGui>
  15. #include <QUrl>
  16. #include <QtNetwork/QNetworkAccessManager>
  17. #include <QtNetwork/QNetworkRequest>
  18. #include <QtNetwork/QNetworkReply>
  19. class TOOTLabel : public QTextEdit
  20. {
  21.     Q_OBJECT
  22. public:
  23.     TOOTLabel(QWidget *parent =0)  : QTextEdit(parent),reply(0)
  24.     {
  25.         manager   = new QNetworkAccessManager(this)  ;
  26.         QNetworkRequest request ;
  27.         request.setUrl(QUrl("http://www.sohu.com/index.html"));
  28.         reply = manager->get(request);
  29.         connect( reply, SIGNAL(finished()), this, SLOT(TOOTReadyRead()));
  30.     }
  31.     ~TOOTLabel()
  32.     {
  33.          if(reply ) delete reply ;
  34.     }
  35. public slots:
  36.     void TOOTReadyRead()
  37.     {
  38.         setText( QString::fromUtf8( reply->readAll()));
  39.     }
  40. private:    
  41.     QNetworkAccessManager *manager ;
  42.     QNetworkReply *reply ;
  43. };
  44. int main(int argc, char **argv)
  45. {
  46.     QApplication app(argc, argv);
  47.     TOOTLabel imgLabel;    
  48.     imgLabel.show();
  49.     return app.exec();
  50. }
  51. #include "main.moc"
离线anfouo
只看该作者 4楼 发表于: 2010-07-20
谢谢了,各位,我试试先
离线anfouo
只看该作者 5楼 发表于: 2010-07-20
赫赫,现在好像论坛比原来人气高了哦,我去年来过,当时注册了帐号(老帐号,自己都忘了,所以又注册的新的),问过问题都不怎么有人看呢,现在刚问了就有人回答。真好,以后常来,顺便祝论坛越办越好!
我先点几下广告以示支持:0,赫赫
离线rubypdf
只看该作者 6楼 发表于: 2010-07-20
引用第5楼anfouo于2010-07-20 10:01发表的  :
赫赫,现在好像论坛比原来人气高了哦,我去年来过,当时注册了帐号(老帐号,自己都忘了,所以又注册的新的),问过问题都不怎么有人看呢,现在刚问了就有人回答。真好,以后常来,顺便祝论坛越办越好!
我先点几下广告以示支持:0,赫赫


随便点广告,你是要害死人家的,Google Adsense坚持很严的
快速回复
限100 字节
 
上一个 下一个