这两天基本上把sahi吃了一半了,再来讲讲,sahi的具体实现是这样的,proxy开始,监听socket,socket.accept后,分给个新线程ProxyProcessor。
在ProxyProcessor首先利用 requestFromBrowser = getRequestFromBrowser();得到request,具体就是socket得到inputstream,然后构造自定义的request对象。其中request和response都是streamhandler的子类,其中streamhandler主要是分析stream流,构造http包的包头和data。然后request和reponse则是具体分析包头的每个属性。
在得到了request后,也就得到了uri,然后开始了判断,如果uri是正常的,就processAsProxy(),实际上就是正常代理一样的处理,如果uri是自己创建的,就processLocally,自己造个response返回。
其中RemoteRequestProcessor类是负责把request发送给服务器,并得到response,实际上就是个代理,主要用到了HttpURLConnection
而ProxyProcessor中则包含了把reponse发送回client的代码。。
sahi今天就说这么多。下次带点图,感觉说的不清晰。
下来谈谈string,bytes的转化,由于http包中,数据都是byte【】,那么怎么得到data的数据,就尤为关键,特别是想看看每个包的内容是什么,怎么办呢,
可能大家都想到了new string(byte[]),但是大家注意由于网页编码的不同,那么形成的byte[],也不同,这时候要想构造成功,要这样new String(byte[],String charsetName),这个charsetName就可以通过html表头得到,一般就是utf-8或者gb2312这两种,就这些了,下次讲讲sahi的JavaScript注入代码
分享到:
相关推荐
delphi-string互相转化为byte数组
dwtPath , String , DWT (用于Web测试的DevOps)目录,流水线式执行web自动化测试和输出测试结果的路径,如果插件插入了相对路径,则是相对于该路径相对 config , Object ,配置参数 config.workspacePath , ...
String[] list 相互转化
最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...
有关String的测试程序包含string内部一些函数
本工具类用于String、Array和String、Date之间的转化
2、byte[]与string之间的转化 string str = 你好,hello; byte[] bytes; //byte[] 转换成 string bytes = Encoding.UTF8.GetBytes(str); //string 转换成 byte[] (字符串是用哪种编码生成的byte[]
string 测试用例 string 测试用例 string 测试用例
UI Automator 是 Android 提供的一个 UI 自动化测试框架,可以用来实现自动化测试。UiObject 是这个框架中最常用的工具之一,它可以代表应用程序中的某个 UI 元素,并提供了一系列方法帮助测试人员进行 UI 操作和...
对string作了一些扩展,包括string转化为int、string转化为double、string转化为bool、打印系统当前时间。但没有解决数据溢出的问题,请大神帮忙解决!
js中string转int把String类型转化成int类型.docx
String和string区别以及string详解
java编程中String类型时间转化成Date类型
本程序提供了std::string 类型的Format格式化函数,以及两种格式化string字符串的方法,主方法在str.hpp文件中,测试文件在string_format.cpp中,已测试可用
将.txt文档转化为String类型 具体代码如下: package IndexSearch; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /** * 将txt的路径,将txt文档转换为String内容 ...
利用pugixml 转化xml为string
NULL 博文链接:https://why-rj.iteye.com/blog/1009800
按格式化字符串将 String 类型 转换为 sql.date 注意,非 util.date 可视化字符串例如 "yyyy-MM-dd HH:mm:ss
1. 关于使用不同进制的数字字面义(literal)表达整数 2. 使用标准库函数实现从数字字符串到整型的转换 3. 将使用16进制表达的色彩RGB字符串转化为
一些关于String类的常用方法的测试,以及完成一些小的demo