• 8864阅读
  • 0回复

PyQT的QHttp如何设置cookie等header信息? [复制链接]

上一主题 下一主题
离线keakon
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-03
— 本帖被 XChinux 执行加亮操作(2010-10-21) —
大家好,我初学PyQT,有个很低级的问题想问问。在纯Python里只要3行代码就搞定了,但PyQT却完全搞不懂…

我是装好PyQT4后,看的C:\Python25\Lib\site-packages\PyQt4\examples\network\http.pyw这个例子

核心代码如下:
  1.         self.http = QtNetwork.QHttp(self)
  2.         self.outFile = QtCore.QFile(fileName)
  3.         self.http.setHost(url.host(), 80)
  4.         self.httpRequestAborted = False
  5.         self.httpGetId = self.http.get(url.path(), self.outFile)


因为想给它加上header,所以我这样构造了一个header:
  1.         header = QtNetwork.QHttpRequestHeader('GET', address) #这里我把服务器去掉了,只有路径
  2.         header.setValue('Host', '61.dc.ftn.qq.com')
  3.         header.setValue('Referer', 'http://mail.qq.com/')
  4.         header.setValue('Cookie', 'FTN5K=' + ftn5k)
  5.         header.setValue('Accept', '*/*')
  6.         header.setValue('User-Agent', 'Mozilla/4.0')
  7.         header.setValue('Connection', 'close')


接着我想用QHttp.request来加上header,这里就困惑了:
int QHttp.request (self, QHttpRequestHeader header, QIODevice device = None, QIODevice to = None)
int QHttp.request (self, QHttpRequestHeader header, QByteArray data, QIODevice to = None)

第一个方法需要device参数,但我不知道这个是什么,因为get时并不需要
第二个方法需要data参数,实际上我的request是GET,不需要传递任何body,所以构造了一个空的QByteArray,但仍然出错了:
  1.         self.httpGetId = self.http.request(header, QtCore.QByteArray(), to=self.outFile)



有人能帮忙看看怎么做吗?
此外,我已经调用了self.http.setHost,还需要在header中设置吗?
还有就是PyQT的文档内容为什么用的是C++的语法…
快速回复
限100 字节
 
上一个 下一个