pyqt5 笔记(二)实现http请求发送

上个图~

index.py 文件

 1 # -*- coding: utf-8 -*-
 2 from PyQt5 import QtWidgets,QtCore                        #从pyqt库导入QtWindget通用窗口类
 3 from form import Ui_form
 4 from url import Url
 5 import chardet
 6 import json
 7 from PyQt5.QtWidgets import (QWidget,QTableWidget,QHBoxLayout,QApplication,QDesktopWidget,QTableWidgetItem,QHeaderView)
 8
 9 class mywindow(QtWidgets.QWidget,Ui_form):                  #自己建的类,继承QtWidgets.Qwidget类方法和Ui_Form界面类
10
11     _signal = QtCore.pyqtSignal(list,tuple,str)                #定义信号,定义参数类型为str
12
13     def __init__(self):
14         super(mywindow,self).__init__()             #首先找到子类(mywindow)的父类(QWidget),然后把my的对象self转成QWidget的对象,然后被转化的self调用自己的init函数
15         self.setupUi(self)                          #直接继承界面类,调用类的setupUi方法
16
17         self.submit.clicked.connect(self.mySubmit)       #连接自己的槽函数
18         self._signal.connect(self.myPrint)               #将信号连接到函数mySignal
19
20     def mySubmit(self):                                     #自定义的槽函数。槽其实就是个函数(方法)
21         text = self.url.text()                      #获取值
22         #combox = self.type.currentText()           #获取复选框的值
23         tbtext = self.tb1.toPlainText()             #获取输入框的值
24         tbtext = tbtext.split(‘\n‘)                 #根据换行符 截断
25         bdtext = self.bd.toPlainText()
26         new=Url(text,tbtext,bdtext)                       #发送给url文件,调用发请求的函数
27         choose = self.tp.currentText()
28         if choose == ‘GET‘:
29             #print(‘get lo~‘)
30             result = new.get()
31         else:
32             #print(‘post lo~‘)
33             result = new.post()
34
35         he = result[‘he‘]                       #响应头
36         st = result[‘st‘]                       #状态码
37         bo = result[‘bo‘].decode(‘utf-8‘)             #响应体,转化为unicode
38         #bo = str(json.loads(bo))                   #unicode进行json解析
39
40         #print(type(he))                        #查看他们的类型
41         #print(type(st))
42         #print(type(bo))
43         self._signal.emit(he,st,bo)
44
45     def myPrint(self,he,st,bo):                                  #自定义信号函数
46         self.tb.append(bo)
47         st = str(st)
48         self.tb2.append(st)
49         for i in he:
50             self.tb2.append(str(i))
51         #self.tb2.append(he)
52         #print(he)
53         #for k, v in f.getheaders():             #响应头
54         #    print(‘%s: %s‘ % (k, v))
55
56
57
58 if __name__=="__main__":
59     import sys
60
61     app=QtWidgets.QApplication(sys.argv)            #pyqt窗口必须在QApplication方法中使用
62     myshow=mywindow()                               #生成mywindow类的实例 myshow
63     myshow.show()                                   #myshow调用show方法
64     sys.exit(app.exec())                            #消息结束的时候,结束进程,并返回0,接着调用sys.exit(0)退出程序

form.py 文件

 1 # -*- coding: utf-8 -*-
 2
 3 # Form implementation generated from reading ui file ‘form.ui‘
 4 #
 5 # Created by: PyQt5 UI code generator 5.4.1
 6 #
 7 # WARNING! All changes made in this file will be lost!
 8
 9 from PyQt5 import QtCore, QtGui, QtWidgets
10
11 class Ui_form(object):
12     def setupUi(self, form):
13         form.setObjectName("form")
14         form.resize(1126, 656)
15         self.quit = QtWidgets.QPushButton(form)
16         self.quit.setGeometry(QtCore.QRect(460, 50, 75, 23))
17         self.quit.setObjectName("quit")
18         self.submit = QtWidgets.QPushButton(form)
19         self.submit.setGeometry(QtCore.QRect(120, 50, 75, 23))
20         self.submit.setObjectName("submit")
21         self.url = QtWidgets.QLineEdit(form)
22         self.url.setGeometry(QtCore.QRect(30, 19, 501, 21))
23         self.url.setText("")
24         self.url.setObjectName("url")
25         self.tb = QtWidgets.QTextEdit(form)
26         self.tb.setGeometry(QtCore.QRect(480, 260, 621, 381))
27         self.tb.setObjectName("tb")
28         self.label = QtWidgets.QLabel(form)
29         self.label.setGeometry(QtCore.QRect(30, 110, 91, 16))
30         self.label.setObjectName("label")
31         self.label_2 = QtWidgets.QLabel(form)
32         self.label_2.setGeometry(QtCore.QRect(40, 380, 141, 16))
33         font = QtGui.QFont()
34         font.setFamily("黑体")
35         font.setPointSize(10)
36         font.setBold(False)
37         font.setWeight(50)
38         self.label_2.setFont(font)
39         self.label_2.setObjectName("label_2")
40         self.label_3 = QtWidgets.QLabel(form)
41         self.label_3.setGeometry(QtCore.QRect(590, 50, 121, 16))
42         self.label_3.setObjectName("label_3")
43         self.tb1 = QtWidgets.QTextEdit(form)
44         self.tb1.setGeometry(QtCore.QRect(30, 190, 391, 171))
45         self.tb1.setObjectName("tb1")
46         self.tb2 = QtWidgets.QTextEdit(form)
47         self.tb2.setGeometry(QtCore.QRect(590, 80, 511, 171))
48         self.tb2.setObjectName("tb2")
49         self.label_4 = QtWidgets.QLabel(form)
50         self.label_4.setGeometry(QtCore.QRect(30, 140, 261, 31))
51         font = QtGui.QFont()
52         font.setFamily("黑体")
53         font.setPointSize(10)
54         font.setBold(False)
55         font.setWeight(50)
56         self.label_4.setFont(font)
57         self.label_4.setObjectName("label_4")
58         self.bd = QtWidgets.QTextEdit(form)
59         self.bd.setGeometry(QtCore.QRect(30, 410, 391, 181))
60         self.bd.setObjectName("bd")
61         self.tp = QtWidgets.QComboBox(form)
62         self.tp.setGeometry(QtCore.QRect(30, 50, 69, 22))
63         self.tp.setObjectName("tp")
64         self.tp.addItem("")
65         self.tp.addItem("")
66         self.label_5 = QtWidgets.QLabel(form)
67         self.label_5.setGeometry(QtCore.QRect(490, 230, 121, 16))
68         self.label_5.setObjectName("label_5")
69
70         self.retranslateUi(form)
71         self.quit.clicked.connect(form.close)
72         QtCore.QMetaObject.connectSlotsByName(form)
73
74     def retranslateUi(self, form):
75         _translate = QtCore.QCoreApplication.translate
76         form.setWindowTitle(_translate("form", "Form"))
77         self.quit.setText(_translate("form", "Quit"))
78         self.submit.setText(_translate("form", "emit"))
79         self.label.setText(_translate("form", "Request"))
80         self.label_2.setText(_translate("form", "输入Request的body~"))
81         self.label_3.setText(_translate("form", "Response Header"))
82         self.tb1.setHtml(_translate("form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
83 "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
84 "p, li { white-space: pre-wrap; }\n"
85 "</style></head><body style=\" font-family:\‘SimSun\‘; font-size:9pt; font-weight:400; font-style:normal;\">\n"
86 "<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"
87 "<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"
88 "<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>"))
89         self.label_4.setText(_translate("form", "输入Request的Header,以换行分割~"))
90         self.tp.setItemText(0, _translate("form", "GET"))
91         self.tp.setItemText(1, _translate("form", "POST"))
92         self.label_5.setText(_translate("form", "Response Body"))

xampp的php文件

<?php
echo ‘Welcome~:‘,$_POST[‘username‘]
?>

时间: 2024-10-10 11:17:04

pyqt5 笔记(二)实现http请求发送的相关文章

nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET           数据在url中 2.POST         数据不再url中 get方式:通过地址栏来传输     name=value&name1=value1&               作用:分享 post方式:通过head头传输      数据相对安全 form action="http://www.vaidu

angular学习笔记(二十五)-$http(3)-转换请求和响应格式

本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({ transformRequest: function(data){ //对前台发送的data进行处理 return data } }) 这个在测试的时候遇到了很大的问题.只要经过transformRequest函数处理,哪怕是不做任何处理,node后台都会报错,需要尝试使用php 2. transformResp

angular学习笔记(二十六)-$http(4)-设置请求超时

本篇主要讲解$http(config)的config中的timeout项: $http({ timeout: number }) 数值,从发出请求开始计算,等待的毫秒数,超过这个数还没有响应,则返回错误 demo: html: <!DOCTYPE html> <html ng-app = 'HttpGet'> <head> <title>18.4 $http(2)</title> <meta charset="utf-8"

angular学习笔记(二十四)-$http(2)-设置http请求头

1. angular默认的请求头: 其中,Accept 和 X-Requested-With是$http自带的默认配置 2. 修改默认请求头: (1) 全局修改(整个模块) 使用$httpProvider依赖 var myApp = angular.module('MyApp',[]); myApp.config(function($httpProvider){ console.log($httpProvider.defaults.headers.common) //修改/操作$httpProv

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构

ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入angular-resource.min.js文件 2.在模块中依赖ngResourece,在服务中注入$resource var HttpREST = angular.module('HttpREST',['ngResource']); HttpREST.factory('cardResource

《How Tomcat Works》读书笔记(二)

<How Tomcat Works>读书笔记(二) 这是<How Tomcat Works>第一二章的读书笔记.第一张主要写了一个静态资源处理的web服务器,第二章加了对servlet的处理. 1. 概述 1.1 架构 HttpServer:表示Http服务器,与客户端通信,处理Http请求. StaticResourceProcessor:对静态资源请求进行处理. ServletProcessor:对Servlet资源请求进行处理. Request:表示Http请求,实现了Ser

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

CCNA学习笔记二——VTP协议

VTP协议:VLAN Trunk Protocol 从一个控制点,维护整个网络上VLAN的添加,删除和重命名工作 VTP域:相同的域名,通过Trunk相互连接的一组交换机 VTP模式: 服务器模式(Server):默认 客户机模式(Client) 透明模式(Transparent) VTP通告: 客户机通告请求-获取VLAN信息 交换机重新启动 VTP域名变更后 交换机接收到了配置修订号大的汇总通告 服务器的通告响应-发送VLAN信息 汇总通告-用于通知邻接的Catalyst交换机目前的VTP域

马哥学习笔记二十八——nginx反向代理,负载均衡,缓存,URL重写及读写分离

Nginx反向代理 Nginx通过proxy模块实现反向代理功能.在作为web反向代理服务器时,nginx负责接收客户请求,并能够根据URI.客户端参数或其它的处理逻辑将用户请求调度至上游服务器上(upstream server).nginx在实现反向代理功能时的最重要指令为proxy_pass,它能够将location定义的某URI代理至指定的上游服务器(组)上.如下面的示例中,location的/uri将被替换为上游服务器上的/newuri. location /uri { proxy_pa