Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看数据,修改请求数据等。比如当你想抓取电脑浏览器打开一个网页时候详细访问了些什么地址,或者手机在运行某个应用的时候访问了些什么地址,特别是在开发应用,想要分析一些http请求的时候特别有用。你一定很好奇,Fiddler是怎样抓取数据的?,其实当你打开Fiddler的时候会自动在本机上开启一个代理服务器,关闭Fiddler时候会自动关闭代理服务器,并且你的浏览器会自动设置和取消代理,完全不需要人工再去设置。这样你浏览器访问的http请求都会经过Fiddler代理(充当中间人角色),Fiddler就可以轻松抓取到http请求的数据了。对于移动端,抓取数据需要移动设备和电脑在同一局域网下,下文会详细叙述。
fiddler抓包原理图示
安装
Fiddler的安装很简单,直接从官网下载,直接安装即可,Fiddler下载地址如下:https://www.telerik.com/download/fiddler
配置
1.在菜单栏依次点击Tools-->Options-->HTTPS,勾选Capture HTTPS CONNECTS、Decrypt HTTPS traffic、Ignore server certificate errors这三个选项前的复选框
配置好后,Fiddler就可以截获HTTPS请求,配置完后记得要重启Fiddler
注意:第一次配置HTTPS时,弹出证书安装提示,若没有弹出提示,勾选Actions--> Trust Root Certificate(信任根证书)
之后会弹出证书安装提示,点击Yes
接着点击是(Y)
证书安装成功
查看安装的证书Actions—>Open Windows Certificate Manager
下面在说一下手机端抓包如何配置(确保手机和电脑在同一个局域网内)
在菜单栏依次点击Tools-->Options-->Connections
为了减少干扰,你也可以去掉 “Act as system proxy on startup”(启动系统代理)
接着还需要对移动端的配置,配置前先在控制台输入ipcinfig命令查一下电脑的IP地址(也可以将鼠标悬浮至Fidder工具右上角Online出查看)
之后在移动端打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了
然后打开 WiFi 设置页面,选择要连接的 WiFi ,并且长按(不同的移动端可能操作不一样),在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。只有移动端使用Fidder的代理,Fidder才能获取数据,至此配置就已经完成。
左边会话框介绍
1:给会话添加备注信息 2:重新加载当前会话 3:删除会话选项 4:放行,和断点对应,后面详细讲解 5:响应模式。也即是,当Fiddler拿到远程的response后是缓存起来一次响应给客户端还 是以stream的方式直接响应。 6:解码。有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码。 7:查找会话。 8:保存会话。 9:截屏。截屏后,会以会话的方式返回一个截图。
会话列表标题和图标说明如下:
标题说明
图标说明
贴士:选中某一条会话按delete键可以删除会话,使用Ctrl+X快捷键清除所有会话
右边Tab面板介绍
1.Statistic
这里显示关于HTTP请求的性能和其他数据分析的一些信息,比如DNS解析时间,建立TCP/IP连接时间消耗等等信息
2. Inspectors
提供headers、textview、hexview、Raw等多种方式查看单条http请求的请求报文的信息,分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容,下面说一些常用的格式
格式1:ImageView标签
使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的回话,点击ImageView
格式2:TextView 标签
HTML/JS/CSS 使用 TextView 可以看到响应的内容。选择一条Content-Type是text/html的回话,点击TextView
格式3:Raw标签
Raw标签可以查看响应报文和响应正文,但是不包含请求报文
格式4:Auth标签
Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息
格式5:Cookies标签
3.AutoResponder
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。下面我们举个例子:我们在浏览器中输入www.baidu.com ,浏览器就会帮我们打开百度的网页,现在我们在AutoResponder tab面板中添加一条规则并启用规则,如下图
此时再访问www.baidu.com 时,页面如下:
小结:AutoResponder功能是Fiddler最实用的功能之一,Rule可以自由地设定,可以使用搜索(默认)、精确匹配(EXACT)、正则表达式匹配(REGEX)。处理方式可以选择使用文件,也可以选择合适的时间暂停数据流(*bpu、*bpafter),人工干预。通过以上几个步骤,我们演示了怎样将HTTP请求重定向到本地的文件,进行调试,这在我们诊断跟踪一些js文件但却不能修改js文件时非常有用。比 如:在用浏览器测试P页面时,P页面引入了一个js资源文件R.js,由于R.js文件在服务器S上,而我此时又不能登录S服务器(没有S服务器的帐 号),此时我们就可以通过浏览器将R.js文件下载到本地,然后对本地的R.js文件进行调整,最后通过设置Fiddler,将R.js文件的请求使用本 地的R.js文件。
4.Composer
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求,Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)
5.断点请求/响应
如图,方框所指的位置时可以点击的。共三种状态: (1)空白:不设置断点。 (2)箭头向上:表示断点请求.此时客户端的请求是无法直接到达目标服务器的,需要手动控制。 (3)箭头向下:表示断点响应.此时目标服务器的响应是无法直接到达客户端的,需要手动控制。
除此之外,还可以在命令行中进行断点,在命令行中输入命令如下:
bpu www.baidu.com (断点请求) bpuafter www.baidu.com(断点响应)
断点请求并修改步骤如下:
如下图:
断点响应修改和断点请求操作类似,只是在响应区域修改报文信息即可,但是在断点响应时,请注意超时时间。
6.过滤域名
Fiddler抓包可以完成我们调试测试需求。但是多余的网页请求和手机的其他链接影响我们手机开发的需求。所以我们需要排除其他无用的包,只关注我们指定的域名的请求包。打开fiddler,找到Filters选项并点击打开,如图所示
默认情况下,这个页面是灰色的,代表默认不过滤任何请求.现在我们勾选 Use Filters ,如下图
一般常用的有三种过滤条件:
(1).域名过滤,只显示特定域名的记录:
这里添加了www.baidu.com ,会话中只会出现于www.baidu.com相关的会话,其他的都会过滤掉,如下图
(2).类型过滤,一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉
(3).根据返回状态码,比如只想显示200的状态,其他的不显示
1.?(问号)
格式:?+字符串 如? baidu.com ;
作用:问号(?)后边跟一个字符串,Fiddler 将所有会话中存在该字符串匹配的全部高亮显示
提示:匹配的字符串是 Protocol、Host 和 URL 中的任何子字符串.
2.> 和 <
大于号(>)和小于号(<)后边跟一个数值,表示高亮所有body大于或小于该数值的会话,比如我输入 <200,按下回车后结果如下:
3.=
等于号(=)后边可以接 HTTP 状态码或 HTTP 方法,比如 =200 表示高亮所有正常响应的会话,下图输入了 =GET,表示希望高亮所有 GET方法的会话:
4.@
@ 后边跟的是 Host,比如我想高亮所有百度的链接,我可以 @baidu.com
5.bpafter
bpafter 后边跟一个字符串,表示中断所有包含该字符串的会话,如bpafter baidu
6.bps
bps 后边跟的是 HTTP 状态码,表示中断所有为该状态码的会话。
7.bpv 或 bpm
bpv 或 bpm 后边跟的是 HTTP 方法,表示中断所有为该方法的会话。
8.bpu
跟 bpafter 类似,区别:bpu 是在发起请求时中断,而 bpafter 是在收到响应后中断。
9.cls 或 clear
清除当前的所有会话
10.dump
将所有的会话打包成 .zip 压缩包的形式保存到 C 盘根目录下
11.g 或 go
放行所有中断下来的会话。
12.hide
将 Fiddler 隐藏
13.show(貌似没啥用)
将 Fiddler 恢复。
14.urlreplace
urlreplace 后边跟两个字符串,表示替换 URL 中的字符串。比如 urlreplace baidu fishc 表示将所有 URL 的 baidu 替换成 fishc。温馨提示:直接输入 urlreplace 不带任何参数表示恢复原来的样子。
15.start
Fiddler 开始工作。
16.stop
Fiddler 停止工作。
17.quit
关闭 Fiddler
18.select
select 后边跟响应的类型(Content-Type),表示选中所有匹配的会话,比如希望 Fiddler 选中所有的图片,可以使用 select image; select css 则选中所有的 css 文件;select html 就是选中所有的 html 文件
19.allbut 或 keeponly
与select 类似,不过 allbut 和 keeponly 会将所有无关的会话删除。比如我只想看图片,那么我可以 keeponly image,表示将所有与图片无关的会话删除
20.!dns
!dns 后边跟一个域名,执行 DNS 查找并在右边的 LOG 栏打印结果,如:!dns www.baidu.com
21.!listen
设置监听的端口,默认是 8888
TML代码:
<table>
<tr>
<td><input type="checkbox" name="b">全选</td><td>内容</td>
</tr>
<tr>
<td><input type="checkbox" name="a"></td><td>复选1</td>
</tr>
<tr>
<td><input type="checkbox" name="a"></td><td>复选2</td>
</tr>
<tr>
<td><input type="checkbox" name="a"></td><td>复选3</td>
</tr>
<tr>
<td><input type="checkbox" name="a"></td><td>复选4</td>
</tr>
<tr>
<td><input type="checkbox" name="a"></td><td>复选5</td>
</tr>
<tr>
<td><input type="checkbox" name="a"></td><td>复选6</td>
</tr>
</table>
JAVASCRIPT代码:
<script>
$("input[name='b']").click(function(){
//判断当前点击的复选框处于什么状态$(this).is(":checked") 返回的是布尔类型
if($(this).is(":checked")){
$("input[name='a']").prop("checked",true);
}else{
$("input[name='a']").prop("checked",false);
}
});
</script>
这样就实现了全选和全不选
辑导语:HMI是人机交互的展现形式之一,是人与车之间的信息交互的特定名词,而HMI设计就是为人与车之间的交互带来良好的体验。什么是HMI呢?HMI设计师如何有效的提升人与车之间的交互体验感受呢?本文作者通过对HMI概念的解析、车载系统特点的总结、车载系统开发的梳理,与大家一起来分享HMI设计的相关知识吧~
很多想要入局HMI设计的同学都是UI、UX设计师,因此为了让大家可以更全面地了解HMI,笔者再将HMI与UX、UI做一个横向的对比~
在人与车的交互信息可以通过很多渠道进行传递,中控大屏、开关、按钮、语音系统等,这些渠道共同帮助驾驶者完成驾驶任务的基础上,还要带给驾驶者良好的使用体验。而良好的使用体验维度也是不同的,例如顺畅的交互感受、及时的反馈、信息高效的传达等。
了解HMI的相关概念,接下来为大家介绍HMI用户的需求是怎样的?HMI有哪些使用场景?通过哪些载体呈现出来?
(1) 中控大屏:汽车中央控制屏幕,可以控制车辆一部分的设施,连接倒车影像等功能,驾驶娱乐化与驾驶乐趣也与驾驶者们之间存在越来越紧密的依存关系,在未来的车载显示器会跟更多的跨时代的科技联系;
(2) 仪表盘:现在的纯液晶仪表盘替代了传统仪表盘成为了主流趋势,传统仪表盘包括:纯机械、灯显、段码等;
(3) 后排显示屏:后排显示屏的娱乐属性较为浓厚,主要具备视频、音乐、游戏、天气预告等功能,可以根据后排乘客的不同需求进行调换,是优化后排乘客乘车体验的有效途径。
下面从行业风向、政策、消费者这三个维度来解析一下HMI的市场与发展前景~
经过介绍,相信大家也是看好这个行业的发展与前景,将会有更多的设计师HMI发展的红利,才会想要进一步了解HMI的~
HMI的用户体验体系是基于人与车之间的关系进行设定的,别分由安全-效率-舒适-体验这四个体系自上而下组成的,而通过HMI的设计可以对这些体系产生正向的作用。
HMI的设计原则有哪些呢?它与UI/UX有着紧密的联系,基于车载HMI的特殊属性与使用场景,HMI的设计原则也与其他设计领域是不尽相同的。
(1)轻便操作:在人车交互的特定场景中,驾驶者通常采用左手进行驾驶需要的基本操作,右手进行HMI系统的交互操作,同时进行多项操作任务。在多任务同时进行下的非静止状态下车辆的安全性是存在风险的,因此,HMI首先就是要确保驾驶人的安全为前提进行信息交互设计,让驾驶者在驾驶的过程中也可以轻松的完成HMI系统的操作。
(2)高效浏览: 随着人们生活的不断丰富,汽车驾驶者对于HMI需要具备功能全面性的要求也越来越高,在“大屏化”的HMI系统所需要具备的功能与信息也越来越多。因此,在HMI的设计中,可以为驾驶者带来更加高效的信息浏览效率是非常重要的,要对信息进行精炼,保障信息通俗易懂、表意准确、清晰好辨,为驾驶者的高效浏览做出支撑。
在进行信息层级设定时,要让驾驶者更加快速的捕捉到最为关键的信息,可以通过对比的设计技巧来实现,确保驾驶员在驾驶车辆时也可以拥有高效的浏览性,降低驾驶员的视觉捕捉成本。
(3)即时反馈:在实际的驾驶场景中,路况、路线、信号的变化关系是非常复杂的,驾驶员要花费较高的精力成本,因此在与HMI的信息交互中,要做到迅速的反馈,可以通过视觉、触控、语音等方式进行及时的反馈,因此在HMI的设计上也要注重信息传递的效率性。
刚为大家介绍了HMI的设计原则,那么基于以上三项设计原则的基础上,HMI设计还有哪些设计特点呢?
(1)使用场景:HMI的设计原则是基于HMI特殊的使用场景而产生出来的,HMI位于前座舱的中间区域,在主驾驶位的右侧,眼睛距离屏幕距离为50~60cm,因此在驾驶员进行驾驶任务时需要通过斜视来查看屏幕中的内容。这样的使用场景就需要考虑HMI设计的差异性,例如硬体的屏幕尺寸、软体的字体大小、图形、icon、颜色等;
(2)品牌感知:汽车市场的车企规模不断扩大,头部车企愈来愈注重品牌的差异化设计,通过独特的品牌留给用户更加深刻的印象。现在的用户喜欢内饰时尚且具有品质感的设计,好的HMI设计不是购买一辆汽车的核心因素,但却是必备的因素。伴随着同一车企出现愈来愈多的车型,每款车型的用户画像也逐渐细化,因为更需要HMI的量身定制,从风格设计再到品牌感知,都要定位到精准的用户像群与之匹配。
(3)用户体验:HMI交互行为是具有较高的固定性的,交互模式却是多种结合的:语音、触控、按键、按钮。这些模式之间相互结合的交互是较为高频的操作,结合HMI的使用场景,因此要求HMI具有较低的容错率,同时也要考虑到实际操作热区的问题。
接下来为大家详细的介绍一下HMI的交互相关概念,分别从HMI的交互模式、交互方式、交互文案、交互反馈为大家介绍~
HMI的交互模式是通过多种感官渠道提供的反馈信息进行交互的综合型模式,其中包括了视觉、听觉、触觉、嗅觉与味觉等方面的感官参与,而想要获取这些感官的参与就要通过其对应的人体器官,例如眼、鼻、嘴、耳、手等,而在HMI的设计中也是围绕这些感官进行设计的,而在更多的应用场景下,需要多种感官之间的共同配合,所以HMI也被称之为多感官交互模式。
这种多感官共用的综合型交互模式可以在车内使交互行为变得更加轻松,增加交互的趣味性,不用再重复机械性的交互。
常见的交互方式有很多:硬体按键、软体触控、语音、手势等,下面为大家详细的介绍一下这四个常见的交互方式~
(1)按键交互:按键的交互形式由来已久,由硬体部分组成,通常是按键、按钮两种,按键通过简单的icon示意,按钮则是搭配具有较强指向性的icon示意操作方法,驾驶者们也早已习惯了此类的交互方式。
(2)触控交互:中控大屏是触控交互使用最为常见的部分,中控大屏的出现也对HMI的交互带来了巨大的变化。触控交互包括了:点击、双击、长按、滑动、单手拖拽、双手拖拽方式等,但是除了点击之外的其他方式都易超出2秒的安全时间范围,这样的操作在复杂的驾驶过程中显得过于繁琐,以至于对驾驶安全产生影响,因此,驾驶员在进行驾驶任务的过程中,点击是最为常见且操作成本相对较低的交互方式。
那么在哪些场景应用怎样的交互方式呢?接下来就给大家带来满满的干货,请码住~
(3)语音交互:语音交互可以有效地降低用户的付出成本,在驾驶操作中,可以分散最小的精力完成任务的操作指令。
(4)手势交互:车载的手势交互是指通过手势的变换与组合来控制汽车的系统,可以让车主更快的实现下达的指令,例如切换在线电台、切换歌曲、翻阅页面、音量调解、接挂电话等。这些手势有的是从触控交互演变而来,有的是总结人们操作习惯而来的。
在车载系统中,手势交互的优点就是可以用“不那么准确的”操作来进行,在驾驶员行驶的过程中,HMI的原则就是使驾驶员的注意力集中在变幻莫测的路况上,减少对于指令操作的注意力;而事物的优劣往往是组合存在的,手势交互的缺点就是此类交互行为是较为稀少的,因此需要驾驶员对此类操作有比较深刻的记忆,但是对于不太熟悉操作的驾驶员,在驾驶时还要回顾交互手势,容易导致转移过多的注意力在交互上。
(1)内容显示:在驾驶的过程中,驾驶者要把大部分的精力放在驾驶汽车上,用在操作HMI所用的时间与精力占比很低。因此,就要求HMI拥有快速传递信息的功能,那么要做到信息的快速传递,可以从以下几个方面入手:
(2)操作热区:HMI的设计要充分考虑到驾驶者的使用感受,(涉及到一些人体工程学的知识)驾驶者在驾驶的过程中,身体受到一定的约束,因此手指想要到触及距离自己较远的屏幕时是会耗费额外的注意力的,同时也要考虑到驾驶者的视力因素。
因此,尽可能将高频操作区域和重点信息区域放在操作热区内,尽可能的缩短操作区域与驾驶者的距离,同时呈现出来的信息内容也更加清晰,反之可以将其他信息置于屏幕右侧。
(3)交互文案:HMI交互文案一定要精简且通俗易懂,可以让驾驶者用最少的精力在最短的时间内完成操作,不要存在歧义,同时理解交互带来的反馈~
表意清晰:
交互文案表意一定要清晰明确,拒绝含糊不清。
举个栗子:用户在上传头像图片时,如果上传失败。
*请认真填写需求信息,我们会在24小时内与您取得联系。