发送添加了用户代理的 QHTTP 请求
Posted
技术标签:
【中文标题】发送添加了用户代理的 QHTTP 请求【英文标题】:send QHTTP request with user agent added 【发布时间】:2013-04-12 05:57:43 【问题描述】:C:\Python33\Lib\site-packages\PyQt4\examples\network\http中有一个例子
但我想在 http 请求中添加 User-Agent 标头,所以我评论了
## self.httpGetId = self.http.get(path, self.outFile)
并编写如下代码
header = QtNetwork.QHttpRequestHeader("GET", path)#1
header.setValue("Host", url.host())
header.setValue('User-Agent' ,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (Khtml, like Gecko) Chrome/24.0.1312.60 Safari/537.17')
self.http.setHost(url.host())
那么问题来了,我不知道如何发送这个带有header的请求到服务器?
附: 我参考了文档,也许找到了
int QHttp::request ( const QHttpRequestHeader & header, QIODevice * data = 0, QIODevice * to = 0 )
会来帮我解决这个问题,但我想知道在这种情况下“数据”应该是什么?
【问题讨论】:
【参考方案1】:使用QNetworkAcessManager
发送您的请求,如下所示:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from PyQt4 import QtCore, QtNetwork
if __name__ == '__main__':
import sys
print "Starting request...",
app = QtCore.QCoreApplication(sys.argv)
url = QtCore.QUrl("http://www.example.com/")
request = QtNetwork.QNetworkRequest()
request.setUrl(url)
request.setRawHeader("User-Agent", "MyAppName/1.0 (Nokia; Qt)")
manager = QtNetwork.QNetworkAccessManager()
manager.finished.connect(app.quit)
manager.get(request)
print "done."
sys.exit(app.exec_())
【讨论】:
以上是关于发送添加了用户代理的 QHTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章
Exchange Server 2016管理系列课件11.管理邮箱代理发送权限