pyqt5 笔记(二)实现http请求发送
上个图~
index.py 文件
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets,QtCore #从pyqt库导入QtWindget通用窗口类
from form import Ui_form
from url import Url
import chardet
import json
from PyQt5.QtWidgets import (QWidget,QTableWidget,QHBoxLayout,QApplication,QDesktopWidget,QTableWidgetItem,QHeaderView) class mywindow(QtWidgets.QWidget,Ui_form): #自己建的类,继承QtWidgets.Qwidget类方法和Ui_Form界面类 _signal = QtCore.pyqtSignal(list,tuple,str) #定义信号,定义参数类型为str def __init__(self):
super(mywindow,self).__init__() #首先找到子类(mywindow)的父类(QWidget),然后把my的对象self转成QWidget的对象,然后被转化的self调用自己的init函数
self.setupUi(self) #直接继承界面类,调用类的setupUi方法 self.submit.clicked.connect(self.mySubmit) #连接自己的槽函数
self._signal.connect(self.myPrint) #将信号连接到函数mySignal def mySubmit(self): #自定义的槽函数。槽其实就是个函数(方法)
text = self.url.text() #获取值
#combox = self.type.currentText() #获取复选框的值
tbtext = self.tb1.toPlainText() #获取输入框的值
tbtext = tbtext.split('\n') #根据换行符 截断
bdtext = self.bd.toPlainText()
new=Url(text,tbtext,bdtext) #发送给url文件,调用发请求的函数
choose = self.tp.currentText()
if choose == 'GET':
#print('get lo~')
result = new.get()
else:
#print('post lo~')
result = new.post() he = result['he'] #响应头
st = result['st'] #状态码
bo = result['bo'].decode('utf-8') #响应体,转化为unicode
#bo = str(json.loads(bo)) #unicode进行json解析 #print(type(he)) #查看他们的类型
#print(type(st))
#print(type(bo))
self._signal.emit(he,st,bo) def myPrint(self,he,st,bo): #自定义信号函数
self.tb.append(bo)
st = str(st)
self.tb2.append(st)
for i in he:
self.tb2.append(str(i))
#self.tb2.append(he)
#print(he)
#for k, v in f.getheaders(): #响应头
# print('%s: %s' % (k, v)) if __name__=="__main__":
import sys app=QtWidgets.QApplication(sys.argv) #pyqt窗口必须在QApplication方法中使用
myshow=mywindow() #生成mywindow类的实例 myshow
myshow.show() #myshow调用show方法
sys.exit(app.exec()) #消息结束的时候,结束进程,并返回0,接着调用sys.exit(0)退出程序
form.py 文件
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'form.ui'
#
# Created by: PyQt5 UI code generator 5.4.1
#
# WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_form(object):
def setupUi(self, form):
form.setObjectName("form")
form.resize(1126, 656)
self.quit = QtWidgets.QPushButton(form)
self.quit.setGeometry(QtCore.QRect(460, 50, 75, 23))
self.quit.setObjectName("quit")
self.submit = QtWidgets.QPushButton(form)
self.submit.setGeometry(QtCore.QRect(120, 50, 75, 23))
self.submit.setObjectName("submit")
self.url = QtWidgets.QLineEdit(form)
self.url.setGeometry(QtCore.QRect(30, 19, 501, 21))
self.url.setText("")
self.url.setObjectName("url")
self.tb = QtWidgets.QTextEdit(form)
self.tb.setGeometry(QtCore.QRect(480, 260, 621, 381))
self.tb.setObjectName("tb")
self.label = QtWidgets.QLabel(form)
self.label.setGeometry(QtCore.QRect(30, 110, 91, 16))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(form)
self.label_2.setGeometry(QtCore.QRect(40, 380, 141, 16))
font = QtGui.QFont()
font.setFamily("黑体")
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(form)
self.label_3.setGeometry(QtCore.QRect(590, 50, 121, 16))
self.label_3.setObjectName("label_3")
self.tb1 = QtWidgets.QTextEdit(form)
self.tb1.setGeometry(QtCore.QRect(30, 190, 391, 171))
self.tb1.setObjectName("tb1")
self.tb2 = QtWidgets.QTextEdit(form)
self.tb2.setGeometry(QtCore.QRect(590, 80, 511, 171))
self.tb2.setObjectName("tb2")
self.label_4 = QtWidgets.QLabel(form)
self.label_4.setGeometry(QtCore.QRect(30, 140, 261, 31))
font = QtGui.QFont()
font.setFamily("黑体")
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.bd = QtWidgets.QTextEdit(form)
self.bd.setGeometry(QtCore.QRect(30, 410, 391, 181))
self.bd.setObjectName("bd")
self.tp = QtWidgets.QComboBox(form)
self.tp.setGeometry(QtCore.QRect(30, 50, 69, 22))
self.tp.setObjectName("tp")
self.tp.addItem("")
self.tp.addItem("")
self.label_5 = QtWidgets.QLabel(form)
self.label_5.setGeometry(QtCore.QRect(490, 230, 121, 16))
self.label_5.setObjectName("label_5") self.retranslateUi(form)
self.quit.clicked.connect(form.close)
QtCore.QMetaObject.connectSlotsByName(form) def retranslateUi(self, form):
_translate = QtCore.QCoreApplication.translate
form.setWindowTitle(_translate("form", "Form"))
self.quit.setText(_translate("form", "Quit"))
self.submit.setText(_translate("form", "emit"))
self.label.setText(_translate("form", "Request"))
self.label_2.setText(_translate("form", "输入Request的body~"))
self.label_3.setText(_translate("form", "Response Header"))
self.tb1.setHtml(_translate("form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Connection:keep-alive</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Cache-Control: max-age=0</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36</p></body></html>"))
self.label_4.setText(_translate("form", "输入Request的Header,以换行分割~"))
self.tp.setItemText(0, _translate("form", "GET"))
self.tp.setItemText(1, _translate("form", "POST"))
self.label_5.setText(_translate("form", "Response Body"))
xampp的php文件
<?php
echo 'Welcome~:',$_POST['username']
?>
pyqt5 笔记(二)实现http请求发送的更多相关文章
- nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)
请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET 数据在url ...
- openresty 学习笔记二:获取请求数据
openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...
- WebApi接口传参不再困惑(4):传参详解 一、get请求 二、post请求 三、put请求 四、delete请求 五、总结
前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望能帮初学者少走弯路.本 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- NetMQ(二): 请求响应模式 Request-Reply
ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- Android系列之网络(二)----HTTP请求头与响应头
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 《MFC游戏开发》笔记二 建立工程、调整窗口
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
随机推荐
- samtools常用命令详解(转)
转自:samtools常用命令详解 samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和ba ...
- 判断手机连接的是fdd还是tdd的办法
判断手机连接的是fdd还是tdd的办法http://bbs.ydss.cn/thread-550035-1-1.html移动4G一般都是tdd,联通则可能有tdd,还有可能是fdd,判断手机连接的是t ...
- jquery 学习
地址:http://www.w3school.com.cn/jquery/jquery_dom_add.asp
- easyui中对于dialog页面传值的接收
dialog的功能是将B页面嵌入至A页面,这样,A页面作为B页面的父容器,所有的元素均可以被B页面访问 那么问题来了:我怎么获取B页面的链接参数呢? 其实很简单,只要找到B页面的存放容器即可: 代码如 ...
- iOS视频直播初窥:高仿<喵播APP>
视频直播初窥 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, 要 ...
- 在VS2010中,引用了同一解决方案的另一个项目的dll,却不能正常调用(转)
目前发现的原因是,dll的.net 版本比我的程序的高 dll用的.net 4 而程序用的.net 4 client profile 转载源:http://www.cnblogs.com/szyic ...
- Could not load file or assembly 'System.Web.Mvc' or one of its dependencies. The located assembly's manifest definition does not
因为用了MVC,在本地是没有问题的,但是部署在服务器就出现了这个问题. 出错界面如下图 原因分析:上面的出错提示最后一句话翻译过来.找到的程序集清单定义与程序集引用不匹配.也就是程序引用的程序集版本和 ...
- poj3669 Meteor Shower(BFS)
题目链接:poj3669 Meteor Shower 我只想说这题WA了后去看讨论才发现的坑点,除了要注意原点外,流星范围题目给的是[0,300],到302的位置就绝对安全了... #include& ...
- BZOJ2708 [Violet 1]木偶
首先想到的是贪心...肯定不对嘛...T T 然后发现其实是可以DP的...不过我们要先排序 令f[i]表示前i个木偶最坏要丢掉几个,则 f[i] = max(f[j] + calc(j + 1, i ...
- 推荐10款非常优秀的 HTML5 开发工具
HTML5 发展如火如荼,随着各大浏览器对 HTML5 技术支持的不断完善以及 HTML5 技术的不断成熟,未来 HTML5 必将改变我们创建 Web 应用程序的方式.今天这篇文章向大家推荐10款 ...