前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Response Headers的转换

Response Headers的转换

作者头像
zx钟
发布2019-07-19 16:22:36
1.1K0
发布2019-07-19 16:22:36
举报
文章被收录于专栏:测试游记

Response Headers的转换

不知不觉一个月没有碰python了,今天看了点以前的东西发现都有点懵逼了。还行需要找点东西增强下记忆。

今天写一个非常简单的实用型脚本。Response Headers转换。

由于python脚本中的headers使用必须使用字典(dict)形式,所以这个小脚本实现了

  • chrome上的头部信息转字典
  • charles上的头部信息转字典

使用python转换

从图中可以看出内容大致为

chrome: xxx:xxx

charles: xxx xxx

chrome中用 :分开键值对

charles中用 \t分开键值对

需要转换成为

代码语言:javascript
复制
{    
    'xxx':'xxx',    
    'xxx':'xxx'
}

行数少的时候自己手动转也还可以,但是行数一多就比较糟心了

先挑选一句进行转换xxx:xxx 转换为"xxx":"xxx",

代码语言:javascript
复制
s = 'xxx:xxx' #字符串
#chrome
s_list = s.strip().split(':') 
#charles
s_list = s.strip().split('\t')
s_ok = "'"+"':'".join(s_list)+"',"

所以写成一个可以用的脚本就是:

代码语言:javascript
复制
def change_headers(text):
   text = text.strip()#去除首尾空格
   text_list = text.splitlines()#按行切成list   for i in range(len(text_list)):#去除每行可能出现的空格
       text_list[i] = text_list[i].strip()
    
    if 'HTTP/1.1' in text_list[0]:#charls中的url信息_没啥用
       text_list.pop(0)
        
    if text_list[0].startswith('Host'):#因人而异的_基本没啥用
       text_list.pop(0)
        
    if text_list[-1].startswith('Cookie'):#一次性用品_没啥用
       text_list.pop(-1)
        
    if ':' in text_list[0]:
       headers = "{\n " +
       ",\n ".join(map(lambda s:"'"+"':'".join(s.strip().split(':'))+"'",text_list))
       + "'\n}"
       return headers    
    else:
       headers = "{\n " +
       ",\n ".join(map(lambda s: "'" + "':'".join(s.strip().split('\t')) + "'", text_list))
       + "'\n}"
       return headers
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Response Headers的转换
    • 使用python转换
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档