Qt见解:Post 与 Get 的区别(Get将参数直接与网址整合为一个整体,而Post则将其拆为两个部分)

第一次接触Qt的Http项目,今天看了一下Post和Get的基本使用方法,就开始尝试了。原先以为Post专门用于向服务器发送请求,然后接收服务器应答的; 而Get只是单纯从服务器获取资源,比如下载这个网页,获得网页上存储的资源等。但是做项目的时候,测试的结果彻底地证明了我的天真和误解.

事实上,Post和Get都是用于向服务器发送请求的,两者都可以带参数,只不过方式略有不同而已。不同之处就在于,Get将参数直接与网址整合为一个整体,而Post则将其拆为两个部分,一部分是网址,另一个部分才是参数,并且必须为其设置报文setHeader,否则服务器是无法找到参数的。

而所谓的获取资源或者接收服务器应答,则并非由它们二者实现的,而是由QNetworkRequest向QNetworkAccessManager发送请求,由QNetworkReply从QNetworkAccessManager接收应答,最后由QNetworkAccessManager与服务器进行交互的。可以说,Post和Get是两种请求方式,它们的操作会触发QNetworkAccessManager/QNetworkRequest/QNetworkReply三者形成的Http网络机制,或者说方法依赖于机制吧。

PS: 以上言论纯属个人见解,如有错误,请留言。

关于Get 和 Post 的详细区别可以参考CSDN的文章:http://blog.csdn.net/lslxdx/article/details/7485297

文章有些老了,使用的是已经被Qt5淘汰的QHttp类,但是仍然有很大的借鉴意义,值得一看。

http://blog.csdn.net/jan5_reyn/article/details/38955715

时间: 2024-12-30 21:03:24

Qt见解:Post 与 Get 的区别(Get将参数直接与网址整合为一个整体,而Post则将其拆为两个部分)的相关文章

case class 和class的区别以及构造器参数辨析

工作中偶然发现Scala构造方法中的参数,无论是否有val/var修饰都可以顺利编译运行,如下: 1 class AA(name: String) 2 class BB(val name: String) 那么两者的区别在哪里呢?对于case class呢?其区别又在哪里?其应用场景又在哪里呢?下面就辨析一下如下几个类的区别 1 class AA(name: String) 2 class BB(val name: String) 3 class CC(var name: String) 4 c

Qt 中update()和repaint()的区别

void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽]通过立即调用paintEvent()来直接重新绘制窗口部件,如果erase为真,Qt在paintEvent()调用之前擦除区域(x,y,w,h). 如果w是负数,它被width()-x替换,并且如果h是负数,它被height()-y替换. 如果你需要立即重新绘制,建议使用repaint(),比如在动画期间.在绝大多数情况下,update()更好,因

QT Q Image QPixmap ·QBitmap 三者区别

QImage与Qpixmap的区别 1.QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O.图片访问和像素修改而设计的 2.QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,QImage使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果 3.目前的Qt会把QPixmap都存储在graphics memory中,QImage是存储在客户端的,是独立于硬件的.在 X11, Mac 以及 Symbian平台上

Qt之Dialog\widget\ mainwindow的区别和布局管理器 & 分裂器的区别

1.Dialog\widget\ mainwindow的区别 注意mainwindow和widget的区别,mainwindow都工具栏和菜单栏 Dialog and mainwinodws 都是继承与 Widget. 布局管理器 & 分裂器的区别 左边为布局管理器,右边为分裂器 布局管理器中的btn的上下宽度是不随主窗口的调整而变化的. 分裂器中的btn的上下宽度是随主窗口的调整而变化的. 各个btn的左右宽度,在这2中方式中都会变化.

Qt学习总结(C鱼)之路径参数引用

1.引用相对路径: 例如: QCursor cursor(QPixmap("1.png")); 问题:会发现引用失败,这是因为相对路径都是从当前工作目录开始找起文件的.可以通过以下函数获取当前工作目录: bool QDir::setCurrent ( const QString & path ) [static] 然后会发现当前工作目录是C:\Users\Administrator,与之不符.所以可以考虑将当前工作目录重新设置,而另一个问题,因为Qt是将工程目录和程序目录放在两

python3 正则匹配[^abc]和(?!abc)的区别(把多个字符作为一个整体匹配排除)

目的:把数字后面不为abc的字符串找出来 如1ab符合要求,2abc不符合要求 1 str = '1ab' 2 out = re.match(r'\d+(?!abc)',str) 3 4 str1 = '1abc' 5 out1 = re.match(r'\d+(?!abc)',str1) 6 7 print('out:',out) 8 print('out1:',out1) 9 # 10 #out: <_sre.SRE_Match object; span=(0, 1), match='1'>

word-wrap: break-word; break-word: break-all;区别

word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行. 它们的区别就在于: 1,word-break:break-all 例如div宽200px,它的内容就会到200px自动换行,如果该行末端有个英文单词很长(congratulation等),它会把单词截断,变成该行末端为conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了. 2,word-wrap:break

CSS 解决&lt;td&gt;里面内容太多把表格弄变形的原因,设置 自动换行。

1 < style="word-break:break-all"> 例如div宽200px,它的内容就会到200px自动换行,如果该行末端有个英文单词很长(congratulation等),它会把单词截断,变成该行末端为conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了. 2,word-wrap:break-word 例子与上面一样,但区别就是它会把congratulation整个单词看成一个整体,如果

设计模式之6大设计原则

设计模式之6大设计原则 原则一:单一职责原则(Single Responsibility Principle SRP) 定义:There should never be more than one reason for a class to change.(应该有且仅有一个原因引起类的变更) 好处: 1.类的复杂性降低,实现什么职都有清晰明确的定义: 2.可读性高,负责性降低,当然可读性就提高了: 3.可维护性提高,可读性提高,自然就更容易维护了: 4.变更引起的风险降低,变更是必不可少的,如果