上个图~

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请求发送的更多相关文章

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

    请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据     前台<= http协议 =>后台   常用的请求的方式: 1.GET           数据在url ...

  2. openresty 学习笔记二:获取请求数据

    openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...

  3. WebApi接口传参不再困惑(4):传参详解 一、get请求 二、post请求 三、put请求 四、delete请求 五、总结

    前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望能帮初学者少走弯路.本 ...

  4. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  5. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  6. NetMQ(二): 请求响应模式 Request-Reply

    ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ ...

  7. webpy使用笔记(二) session/sessionid的使用

    webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...

  8. Android系列之网络(二)----HTTP请求头与响应头

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. 《MFC游戏开发》笔记二 建立工程、调整窗口

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...

  10. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

随机推荐

  1. nginx的启动与关闭

    [root@nginx ~]# #默认启动方式 [root@nginx ~]# which nginx /sbin/nginx [root@nginx ~]# nginx [root@nginx ~] ...

  2. json方法

    http://penghuaiyi.iteye.com/blog/1922632 package com.yd.web.util; import java.lang.reflect.Type; imp ...

  3. 求出数组前面k个元素或数组中元素大于一半的元素(快速排序与堆排序的灵活运用)

    写这个的目的在于,说明快速排序的灵活运用.我们来看下关于快速排序中的一部分关键代码: 快速排序代码: int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 void quickso ...

  4. Unity3D研究院编辑器之不实例化Prefab获取删除更新组件(十五)

    http://www.xuanyusong.com/archives/3727 感谢楼下的牛逼回复更正一下,我表示我也是才知道.. 其实不需要实例化也能查找,你依然直接用GetComponentsIn ...

  5. PLI与Pillow

    PIL概念 XXXXX 注意 PIL不兼容setuptools.   Pillow概念 Pillow(PIL fork)是用来处理raster图像的Python图像库,即像素数据的矩阵. 查阅PIL的 ...

  6. 《javascript高级程序设计》 第24章 最佳实践 Best Practices

    24.1 可维护性 Maintainability24.1.1 什么是可维护的代码 What Is Maintainable Code?24.1.2 代码约定 Code Conventions 24. ...

  7. python常见的模块

    Python内置模块名称 功能简介 详细解释/使用示例 os 和操作系统相关 os.path — Common pathname manipulations sys 和系统相关 sys — Syste ...

  8. java配置数据库连接池的方法步骤

    java配置数据库连接池的方法步骤 java配置数据库连接池的方法步骤,需要的朋友可以参考一下   先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vecto ...

  9. 多线程相关Interlocked.Increment问题

    今天群里有人问到如下代码打印出来的东西为什么不是连续得,所以有大神解释了原因.在这过程中遇到了些奇怪的情况 static void Main(string[] args) { for (int i = ...

  10. jQuery学习小结1-CSS操作+事件

    一.DOM对象和jQuery 对象互换 1.jQuery对象 就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法.比如: $(&quo ...