QT POST/GET 发送/获取网页数据

#include <QNetworkReply>
#include <QNetworkRequest>

QNetworkAccessManager *m_accessManager;
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    m_accessManager = new QNetworkAccessManager(this);
    QObject::connect(m_accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::finishedSlot(QNetworkReply *reply)
{
     if (reply->error() == QNetworkReply::NoError)
     {
         QByteArray bytes = reply->readAll();
         qDebug()<<bytes;
         QString string = QString::fromUtf8(bytes);

         ui->textBrowser->setText(string.toUtf8());
     }
     else
     {
         qDebug()<<"handle errors here";
         QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
         //statusCodeV是HTTPserver的对应码,reply->error()是Qt定义的错误码,能够參考QT的文档
         qDebug( "found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error());
         qDebug(qPrintable(reply->errorString()));
     }
     reply->deleteLater();
}

void Widget::on_pushButton_clicked()
{
//POST
    QNetworkRequest *request = new QNetworkRequest();

    request->setUrl(QUrl("http://localhost:8888/login"));
//    request->setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
//    request->setRawHeader("Accept","text/html, application/xhtml+xml, */*");
//    request->setRawHeader("Referer","http://localhost:8888/login");
//    request->setRawHeader("Accept-Language","zh-CN");
//    request->setRawHeader("X-Requested-With","XMLHttpRequest");
//    request->setRawHeader("User-Agent","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
//    request->setRawHeader("Content-Type","application/x-www-form-urlencoded");
//    request->setRawHeader("Accept-Encoding","gzip,deflate");
//    request->setRawHeader("Host","localhost:8888");
//    request->setRawHeader("Content-Length","18");
//    request->setRawHeader("Connection","Keep-Alive");
//    request->setRawHeader("Cache-Control","no-cache");

    QByteArray postData;
    postData.append("myname=lk&mypwd=33");

    QNetworkReply* reply = m_accessManager->post(*request,postData);
}

void Widget::on_pushButton_get_clicked()
{
//GET

//    QUrl url("https://kyfw.12306.cn/otn/resources/js/framework/station_name.js");
//    QUrl url("http://localhost:8888/login");
//    QUrl url("http://dict.baidu.com/s?wd=name");

    QNetworkRequest *request = new QNetworkRequest();
    request->setUrl(QUrl("http://dict.baidu.com/s?wd=name"));

    m_accessManager->get(*request);
}
时间: 2024-10-12 23:15:45

QT POST/GET 发送/获取网页数据的相关文章

【转】如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS

地址: http://blog.csdn.net/hujkay作者:Jekkay Hu([email protected])关键词:Windows,curl,ssl,  visual c++ 2005, libcurl, https,网页抓取时间: 2014/2/18 1. 概述 由于Curl提供强大的网络功能,支持HTTP,HTTPS, DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP

[原创]利用爬虫技术获取网页数据,以及想要的指定数据

最近在公司做个系统,由于要获取网页的一些数据,以及一些网页的数据,所以就写的一个公用的HttpUtils.下面是针对乌云网我写的一个例子. 一.首先是获取指定路径下的网页内容. public static String httpGet(String urlStr, Map<String, String> params) throws Exception { StringBuilder sb = new StringBuilder(); if (null != params &&

在php中分别使用curl的post提交数据的方法和get获取网页数据的方法

在php中分别使用curl的post提交数据的方法和get获取网页数据的方法整理分享一下额,具体代码如下: (1)使用php curl获取网页数据的方法: $ch=curl_init(); //设置选项,包括URL curl_setopt($ch,CURLOPT_URL,"http://www.nettuts.com"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); //执行

使用HttpClient进行Get方式通信(使用HttpGet获取网页数据)

1.项目结构 导入jar包 jar包去官网下载解压后项目新建lib目录,将解压包中的lib目录中的zip拷入项目lib目录文件夹,然后build path-->配置到项目中 2.TestGet.java package testhttpclient; import java.io.IOException; import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.cli

获取网页数据的例子

最近,1元购物比较火,这种众筹形式的购物,购买者出很小的费用,就能获得一个得到喜欢的物品.有人说这是个骗局,也有人趋之若鹜的每天在上面购物,这里不做评论.网易也做这个模式,名字是1元云购,1元夺宝. 网易云购 www.1yyg.com的网站上顶部有个累计参与人次的统计,对这个比较好奇,想着统计一个时间段参与人次的变化. 打开网站,加载页面的过程中,打开调试,查看network,注意不断重复的请求: 上面标注的这个请求不断的发送,网页上实时变化也就累计参与人次的统计,这样就确定了请求. 打开这个请

VB中获取网页数据

以下是在Microsoft Visual Basic 6.0 中文版下做的 VB可以抓取网页数据,所用的控件是Inet控件. 第一步:单击工程-->部件 选择Microsoft Internet Transfer Control(SP6)控件. 第二步:布局界面显示 在界面里面拖动相对应的控件. 第三步 编码开始 Option Explicit Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "请输

获取网页数据

描述: 将网页数据导入到表格中,在日常工作中经常会用到,此法的好处是省去了手动敲入的时间,如何快速的将网页数据导入到表格中成为了一个焦点问题,下面与大家 分享个比较常用的方法,大概的步骤就是调出新建WEB查询界面,输入网址并转到相应的页面,点击导入,然后等待.....接着设置导入数据的位置单元格, 确定即可.此法只能导入网页文字,图片是无法导入的. 步骤: Step 1:启动Excel2013,单击菜单栏--数据--获取外部数据--自网站. Step 2:弹出新建WEB查询界面,输入网站地址,转

C# 获取网页数据、获取本机IP

说明: (1) http://www.3322.org/dyndns/getip 这个网址可以获取本机IP,读取的内容就是本机IP (2)方法经测试,可以实现. (3)参考:http://www.cnblogs.com/ceachy/articles/CSharp_Retrive_Page_Document.html 两种方法: (1)使用WebClient private static string GetIP(String url) { WebClient MyWebClient = new

C#获取网页数据的两个函数

1.获取网页源码函数 1 string getPageText(string url) 2 { 3 string retVal = ""; 4 dtUpdate = DateTime.Now; 5 labMessage.Text = ""; 6 int pageNo = 1; 7 string strUrl = ""; 8 do 9 { 10 try 11 { 12 using (var wc = new WebClient()) 13 { 14