用过requests写接口的人都知道,当我们抓包查看到url参数/body参数的时候,我们需要将(key1=value&key2=value2)手动打成python数据类型中的字典来进行发动接口请求
一、介绍使用场景
比如下方fiddler抓包界面 大家看参数很多 假设参数很少 那还好 ,但是如果一多,手打成dict岂不是很麻烦?
之前我们都是将参数 手打成dict={'key1':'vlaue1','key2','vlaue2'......}这种格式。现在我们只需要copy上图中这一段 ,之后放在软件中,直接点击转化即可翻译成我们所需要的dicr格式,之后我们在python直接粘贴,这样岂不是很方便?
二、软件概述。
首先介绍一下软件,分为三个作用
a.将key1=value&key2=value2转化成dict格式
b.将key1=value;key2=value2转化成dict格式(fiddler、raw数据格式中,cookie就是这类形式)
c.在线翻译单词,支持多国语言转化(需要联网)
软件会根据你输入的格式,智能判断从而进行不同的功能。
三、软件源代码(python3.6)
a.gui界面代码
import wx
import wx.xrc
###########################################################################
## Class Frame
###########################################################################
class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"ThreeToOneTools", pos=wx.DefaultPosition, size=wx.Size(700, 300),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
self.icon = wx.Icon('logo.ico', wx.BITMAP_TYPE_ICO)
self.SetIcon(self.icon)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
wxBoxSizer = wx.BoxSizer(wx.VERTICAL)
self.staticTexttitle = wx.StaticText(self, wx.ID_ANY, u"请在第一个输入框输入字符", wx.DefaultPosition, wx.DefaultSize, 0)
self.staticTexttitle.Wrap(-1)
wxBoxSizer.Add(self.staticTexttitle, 0, wx.ALL, 5)
self.CommonInput = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(700,25), 0)
wxBoxSizer.Add(self.CommonInput, 0, wx.ALL, 5)
self.ResultInput = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(700,25), 0)
wxBoxSizer.Add(self.ResultInput, 0, wx.ALL, 5)
self.BtnTranwords = wx.Button(self, wx.ID_ANY, u"点击此处进行转化", wx.Point(100, 100), wx.DefaultSize, 0)
wxBoxSizer.Add(self.BtnTranwords, 0, wx.ALL, 5)
self.staticTexttitle = wx.StaticText(self, wx.ID_ANY, u"软件使用说明:", wx.DefaultPosition, wx.DefaultSize, 0)
self.staticTexttitle.Wrap(-1)
wxBoxSizer.Add(self.staticTexttitle, 0, wx.ALL, 5)
self.staticTexttitle = wx.StaticText(self, wx.ID_ANY,u"1、输入key1=value1&&key2=value2&&key3=value3格式字符将会转化成Dict", wx.DefaultPosition, wx.DefaultSize, 0)
self.staticTexttitle.Wrap(-1)
wxBoxSizer.Add(self.staticTexttitle, 0, wx.ALL, 5)
self.staticTexttitle = wx.StaticText(self, wx.ID_ANY, u"2、输入key1=value1;key2=value2;key3=value3格式字符将会转化成Dict", wx.DefaultPosition, wx.DefaultSize, 0)
self.staticTexttitle.Wrap(-1)
wxBoxSizer.Add(self.staticTexttitle, 0, wx.ALL, 5)
self.staticTexttitle = wx.StaticText(self, wx.ID_ANY, u"3、如不符合上述格式,将进行联网在线翻译,支持多国语言翻译。", wx.DefaultPosition, wx.DefaultSize, 0)
self.staticTexttitle.Wrap(-1)
wxBoxSizer.Add(self.staticTexttitle, 0, wx.ALL, 5)
self.SetSizer(wxBoxSizer)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.BtnTranwords.Bind(wx.EVT_BUTTON, self.BtnTranWord)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def BtnTranWord(self, event):
event.Skip()
b.主函数界面代码
# -*- coding: UTF-8 -*-
import wx
import BaseTools
import sys
import chardet
import hashlib
import random
import requests
import time
import importlib
import sys
importlib.reload(sys)
q = None
appid = "填你自己的"
SecretKey = "填你自己的"
salt = str(random.random())
q = None
class MianWindow(BaseTools.Frame):
# 首先,咱们从刚刚源文件中将主窗体继承下来.就是修改过name属性的主窗体咯。
def BtnTranWord(self, event):
#1.定义翻译单词函数
def WordFanyi():
def SignMake(q):
# 创建index字符串
index = appid +