poc
函数名 | 函数描述/介绍 |
---|---|
. | |
. | |
poc.AppendHTTPPacketCookie | AppendHTTPPacketCookie 是一个辅助函数,用于改变请求报文,添加Cookie请求头中的值 |
poc.AppendHTTPPacketFormEncoded | AppendHTTPPacketFormEncoded 是一个辅助函数,用于改变请求报文,添加请求体中的表单 |
poc.AppendHTTPPacketHeader | AppendHTTPPacketHeader 是一个辅助函数,用于改变请求报文,添加请求头 |
poc.AppendHTTPPacketPath | AppendHTTPPacketPath 是一个辅助函数,用于改变请求报文,在现有请求路径后添加请求路径 |
poc.AppendHTTPPacketPostParam | AppendHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,添加POST请求参数 |
poc.AppendHTTPPacketQueryParam | AppendHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,添加GET请求参数 |
poc.AppendHTTPPacketUploadFile | AppendHTTPPacketUploadFile 是一个辅助函数,用于改变请求报文,添加请求体中的上传的文件,其中第一个参数为原始请求报文,第二个参数为表单名,第三个参数为文件名,第四个参数为文件内容,第五个参数是可选参数,为文件类型(Content-Type) |
poc.BuildRequest | BuildRequest 是一个用于辅助构建请求报文的工具函数,它第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,修改请求报文的选项将被作用,最后返回构建好的请求报文 |
poc.CurlToHTTPRequest | CurlToHTTPRequest 尝试将curl命令转换为HTTP请求报文,其返回值为bytes,即转换后的HTTP请求报文 |
poc.Delete | Delete 向指定 URL 发送 DELETE 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 |
poc.DeleteHTTPPacketCookie | DeleteHTTPPacketCookie 是一个辅助函数,用于改变请求报文,删除Cookie中的值 |
poc.DeleteHTTPPacketForm | DeleteHTTPPacketForm 是一个辅助函数,用于改变请求报文,删除POST请求表单 |
poc.DeleteHTTPPacketHeader | DeleteHTTPPacketHeader 是一个辅助函数,用于改变请求报文,删除请求头 |
poc.DeleteHTTPPacketPostParam | DeleteHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,删除POST请求参数 |
poc.DeleteHTTPPacketQueryParam | DeleteHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,删除GET请求参数 |
poc.Do | Do 向指定 URL 发送指定请求方法的请求并且返回响应结构体,请求结构体以及错误,它的是第一个参数是请求方法,第二个参数 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 ... |
poc.ExtractPostParams | ExtractPostParams 尝试将 HTTP 请求报文中的各种 POST 参数(普通格式,表单格式,JSON格式,XML格式)提取出来,返回提取出来的 POST 参数与错误 |
poc.FixHTTPPacketCRLF | FixHTTPPacketCRLF 修复一个HTTP报文的CRLF问题(正常的报文每行末尾为\r\n,但是某些报文可能是有\n),如果noFixLength为true,则不会修复Content-Length,否则会尝试修复Content-Length |
poc.FixHTTPRequest | FixHTTPRequest 尝试对传入的HTTP请求报文进行修复,并返回修复后的请求 |
poc.FixHTTPResponse | FixHTTPResponse 尝试对传入的 HTTP 响应报文进行修复,并返回修复后的响应 |
poc.Get | Get 向指定 URL 发送 GET 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 |
poc.GetAllHTTPPacketPostParams | GetAllHTTPPacketPostParams 是一个辅助函数,用于获取请求报文中的所有POST请求参数,其返回值为map[string]string,其中键为参数名,值为参数值 |
poc.GetAllHTTPPacketPostParamsFull | GetAllHTTPPacketPostParamsFull 是一个辅助函数,用于获取请求报文中的所有POST请求参数,其返回值为map[string][]string,其中键为参数名,值为参数值切片 |
poc.GetAllHTTPPacketQueryParams | GetAllHTTPPacketQueryParams 是一个辅助函数,用于获取请求报文中的所有GET请求参数,其返回值为map[string]string,其中键为参数名,值为参数值 |
poc.GetAllHTTPPacketQueryParamsFull | GetAllHTTPPacketQueryParamsFull 是一个辅助函数,用于获取请求报文中的所有GET请求参数,其返回值为map[string][]string,其中键为参数名,值为参数值切片 |
poc.GetHTTPPacketBody | GetHTTPPacketBody 是一个辅助函数,用于获取请求报文中的请求体,其返回值为bytes |
poc.GetHTTPPacketContentType | GetHTTPPacketContentType 是一个辅助函数,用于获取请求报文中的Content-Type请求头,其返回值为string |
poc.GetHTTPPacketCookie | GetHTTPPacketCookie 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为string |
poc.GetHTTPPacketCookieFirst | GetHTTPPacketCookieFirst 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为string |
poc.GetHTTPPacketCookieValues | GetHTTPPacketCookieValues 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为[]string,这是因为Cookie可能存在多个相同键名的值 |
poc.GetHTTPPacketCookies | GetHTTPPacketCookies 是一个辅助函数,用于获取请求报文中所有Cookie值,其返回值为map[string]string |
poc.GetHTTPPacketCookiesFull | GetHTTPPacketCookiesFull 是一个辅助函数,用于获取请求报文中所有Cookie值,其返回值为map[string][]string,这是因为Cookie可能存在多个相同键名的值 |
poc.GetHTTPPacketFirstLine | GetHTTPPacketFirstLine 是一个辅助函数,用于获取 HTTP 报文中第一行的值,其返回值为string,string,string 在请求报文中,其三个返回值分别为:请求方法,请求URI,协议版本 在响应报文中,其三个返回值分别为:协议版本,状态码,状态码描述 |
poc.GetHTTPPacketHeader | GetHTTPPacketHeader 是一个辅助函数,用于获取请求报文中指定的请求头,其返回值为string |
poc.GetHTTPPacketHeaders | GetHTTPPacketHeaders 是一个辅助函数,用于获取请求报文中所有请求头,其返回值为map[string]string |
poc.GetHTTPPacketHeadersFull | GetHTTPPacketHeadersFull 是一个辅助函数,用于获取请求报文中所有请求头,其返回值为map[string][]string,这是因为请求头可能存在多个相同键名的值 |
poc.GetHTTPPacketPostParam | GetHTTPPacketPostParam 是一个辅助函数,用于获取请求报文中指定的POST请求参数,其返回值为string |
poc.GetHTTPPacketQueryParam | GetHTTPPacketQueryParam 是一个辅助函数,用于获取请求报文中指定的GET请求参数,其返回值为string |
poc.GetHTTPRequestMethod | GetHTTPRequestMethod 是一个辅助函数,用于获取请求报文中的请求方法,其返回值为string |
poc.GetHTTPRequestPath | GetHTTPRequestPath 是一个辅助函数,用于获取响应报文中的路径,返回值是 string,包含 query |
poc.GetHTTPRequestPathWithoutQuery | GetHTTPRequestPathWithoutQuery 是一个辅助函数,用于获取响应报文中的路径,返回值是 string,不包含 query |
poc.GetStatusCodeFromResponse | GetStatusCodeFromResponse 是一个辅助函数,用于获取响应报文中的状态码,其返回值为int |
poc.GetUrlFromHTTPRequest | GetUrlFromHTTPRequest 是一个辅助函数,用于获取请求报文中的URL,其返回值为string |
poc.HTTP | HTTP 发送请求并且返回原始响应报文,原始请求报文以及错误,它的第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等 |
poc.HTTPEx | HTTPEx 与 HTTP 类似,它发送请求并且返回响应结构体,请求结构体以及错误,它的第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法... |
poc.HTTPPacketForceChunked | HTTPPacketForceChunked 将一个HTTP报文的body强制转换为chunked编码 |
poc.HTTPRequestToCurl | HTTPRequestToCurl 尝试将 HTTP 请求报文转换为curl命令。第一个参数为是否使用HTTPS,第二个参数为HTTP请求报文,其返回值为string,即转换后的curl命令 |
poc.Head | Head 向指定 URL 发送 HEAD 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 |
poc.IsResponse | IsResp 判断传入的数据是否为 HTTP 响应报文 |
poc.Options | Options 向指定 URL 发送 OPTIONS 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 |
poc.ParseBytesToHTTPRequest | ParseBytesToHTTPRequest 将字节数组解析为 HTTP 请求 |
poc.ParseBytesToHTTPResponse | ParseBytesToHTTPResponse 将字节数组解析为 HTTP 响应 |
poc.ParseMultiPartFormWithCallback | ParseMultiPartFormWithCallback 是一个辅助函数,用于尝试解析请求报文体中的表单并进行回调 |
poc.ParseUrlToHTTPRequestRaw | ParseUrlToHTTPRequestRaw 将URL解析为原始 HTTP 请求报文,返回是否为 HTTPS,原始请求报文与错误 |
poc.Post | Post 向指定 URL 发送 POST 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 |
poc.ReplaceAllHTTPPacketPostParams | ReplaceAllHTTPPacketPostParams 是一个辅助函数,用于改变请求报文,修改所有 POST 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为 POST 请求参数名,value 为 POST 请求参数值 |
poc.ReplaceAllHTTPPacketPostParamsWithoutEscape | ReplaceAllHTTPPacketPostParamsWithoutEscape 是一个辅助函数,用于改变请求报文,修改所有 POST 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为 POST 请求参数名,value 为 POST 请... |
poc.ReplaceAllHTTPPacketQueryParams | ReplaceAllHTTPPacketQueryParams 是一个辅助函数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值 |
poc.ReplaceAllHTTPPacketQueryParamsWithoutEscape | ReplaceAllHTTPPacketQueryParamsWithoutEscape 是一个辅助函数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值 与 poc.... |
poc.ReplaceBody | ReplaceBody 将原始 HTTP 请求报文中的 body 替换为指定的 body,并指定是否为 chunked,返回新的 HTTP 请求报文 |
poc.ReplaceHTTPPacketBasicAuth | ReplaceHTTPPacketBasicAuth 是一个辅助函数,用于改变请求报文,修改Authorization请求头为基础认证的密文,如果不存在则会增加,实际上是ReplaceHTTPPacketHeader("Authorization", codec.EncodeBase... |
poc.ReplaceHTTPPacketBody | ReplaceHTTPPacketBody 是一个辅助函数,用于改变 HTTP 报文,修改 HTTP 报文主体内容,第一个参数为原始 HTTP 报文,第二个参数为修改的报文主体内容 |
poc.ReplaceHTTPPacketCookie | ReplaceHTTPPacketCookie 是一个辅助函数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加 |
poc.ReplaceHTTPPacketCookies | ReplaceHTTPPacketCookies 是一个辅助函数,用于改变请求报文,修改Cookie请求头 |
poc.ReplaceHTTPPacketFirstLine | ReplaceHTTPPacketFirstLine 是一个辅助,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本) |
poc.ReplaceHTTPPacketFormEncoded | ReplaceHTTPPacketFormEncoded 是一个辅助函数,用于改变请求报文,替换请求体中的表单,如果不存在则会增加 |
poc.ReplaceHTTPPacketHeader | ReplaceHTTPPacketHeader 是一个辅助函数,用于改变请求报文,修改请求头,如果不存在则会增加 |
poc.ReplaceHTTPPacketHost | ReplaceHTTPPacketHost 是一个辅助函数,用于改变请求报文,修改Host请求头,如果不存在则会增加,实际上是ReplaceHTTPPacketHeader("Host", host)的简写 |
poc.ReplaceHTTPPacketJsonBody | ReplaceHTTPPacketJsonBody 是一个辅助函数,用于改变 HTTP 报文,修改 HTTP 报文主体内容( json 格式),第一个参数为原始 HTTP 报文,第二个参数为修改的报文主体内容( map 对象) |
poc.ReplaceHTTPPacketMethod | ReplaceHTTPPacketMethod 是一个辅助函数,用于改变请求报文,修改请求方法 |
poc.ReplaceHTTPPacketPath | ReplaceHTTPPacketPath 是一个辅助函数,用于改变请求报文,修改请求路径 |
poc.ReplaceHTTPPacketPostParam | ReplaceHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,修改POST请求参数,如果不存在则会增加 |
poc.ReplaceHTTPPacketQueryParam | ReplaceHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,修改GET请求参数,如果不存在则会增加 |
poc.ReplaceHTTPPacketUploadFile | ReplaceHTTPPacketUploadFile 是一个辅助函数,用于改变请求报文,替换请求体中的上传的文件,其中第一个参数为原始请求报文,第二个参数为表单名,第三个参数为文件名,第四个参数为文件内容,第五个参数是可选参数,为文件类型(Content-Type),如果表单名不存在则会增加 |
poc.Split | Split 切割 HTTP 报文,返回响应头和响应体,其第一个参数是原始HTTP报文,接下来可以接收零个到多个回调函数,其在每次解析到请求头时回调 |
poc.Websocket | Websocket 实际上等价于poc.HTTP(..., poc.websocket(true)) ,用于快速发送请求并建立websocket连接并且返回原始响应报文,原始请求报文以及错误 |
poc.appendCookie | appendCookie 是一个请求选项参数,用于改变请求报文,添加 Cookie 请求头中的值 |
poc.appendFormEncoded | appendFormEncoded 是一个请求选项参数,用于改变请求报文,添加请求体中的表单 |
poc.appendHeader | appendHeader 是一个请求选项参数,用于改变请求报文,添加请求头 |
poc.appendHeaders | appendHeaders 是一个请求选项参数,用于改变请求报文,添加请求头 |
poc.appendPath | appendPath 是一个请求选项参数,用于改变请求报文,在现有请求路径后添加请求路径 |
poc.appendPostParam | appendPostParam 是一个请求选项参数,用于改变请求报文,添加 POST 请求参数 |
poc.appendQueryParam | appendQueryParam 是一个请求选项参数,用于改变请求报文,添加 GET 请求参数 |
poc.appendUploadFile | appendUploadFile 是一个请求选项参数,用于改变请求报文,添加请求体中的上传的文件,其中第一个参数为表单名,第二个参数为文件名,第三个参数为文件内容,第四个参数是可选参数,为文件类型(Content-Type) |
poc.body | body 是一个请求选项参数,用于指定请求的 body,需要传入一个任意类型的参数,如果不是 string 或者 bytes 会抛出日志并忽略。 |
poc.connPool | connPool 是一个请求选项参数,用于指定是否使用连接池,默认不使用连接池 |
poc.connectTimeout | connectTimeout 是一个请求选项参数,用于指定连接超时时间,默认为15秒 |
poc.context | context 是一个请求选项参数,用于指定请求的上下文 |
poc.deleteCookie | deleteCookie 是一个请求选项参数,用于改变请求报文,删除 Cookie 中的值 |
poc.deleteForm | deleteForm 是一个请求选项参数,用于改变请求报文,删除 POST 请求表单 |
poc.deleteHeader | deleteHeader 是一个请求选项参数,用于改变请求报文,删除请求头 |
poc.deletePostParam | deletePostParam 是一个请求选项参数,用于改变请求报文,删除 POST 请求参数 |
poc.deleteQueryParam | deleteQueryParam 是一个请求选项参数,用于改变请求报文,删除 GET 请求参数 |
poc.dnsNoCache | dnsNoCache 是一个请求选项参数,用于指定请求时不使用DNS缓存,默认使用DNS缓存 |
poc.dnsServer | dnsServer 是一个请求选项参数,用于指定请求所使用的DNS服务器,默认使用系统自带的DNS服务器 |
poc.host | host 是一个请求选项参数,用于指定实际请求的 host,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的host |
poc.http2 | http2 是一个请求选项参数,用于指定是否使用 http2 协议,默认为 false 即使用http1协议 |
poc.https | https 是一个请求选项参数,用于指定是否使用 https 协议,默认为 false 即使用 http 协议 |
poc.jsRedirect | jsRedirect 是一个请求选项参数,用于指定是否跟踪JS重定向,默认为false即不会自动跟踪JS重定向 |
poc.json | json 是一个请求选项参数,用于指定请求的 body 为 json 格式,需要传入一个任意类型的参数,会自动转换为 json 格式 |
poc.noFixContentLength | noFixContentLength 是一个请求选项参数,用于指定是否修复响应报文中的 Content-Length 字段,默认为 false 即会自动修复Content-Length字段 |
poc.noRedirect | noRedirect 是一个请求选项参数,用于指定是否跟踪重定向,默认为 false 即会自动跟踪重定向 |
poc.params | params 是一个请求选项参数,用于在请求时使用传入的值,需要注意的是,它可以很方便地使用 str.f() 或 f-string 代替 |
poc.password | password 是一个请求选项参数,用于指定认证时的密码 |
poc.port | port 是一个请求选项参数,用于指定实际请求的端口,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的端口 |
poc.postData | postData 是一个请求选项参数,用于指定请求的 body 为 post 数据,需要传入一个任意类型的参数,会自动转换为 post 数据 输入是原始字符串,不会修改 Content-Type |
poc.postParams | postParams 是一个请求选项参数,用于指定请求的 body 为 post 数据,需要传入一个任意类型的参数,会自动转换为 post 数据 输入是 map 类型,会自动转换为 post 数据,同时会自动设置 Content-Type 为 application/x-www-form-urle... |
poc.proxy | proxy 是一个请求选项参数,用于指定请求使用的代理,可以指定多个代理,默认会使用系统代理 |
poc.query | query 是一个请求选项参数,用于指定请求的 query 参数,需要传入一个任意类型的参数,会自动转换为 query 参数 如果输入的是 map 类型,则会自动转换为 query 参数,例如:{"a": "b"} 转换为 a=b 如果输入的是其他,会把字符串结果... |
poc.randomJA3 | |
poc.redirectHandler | redirectHandler 是一个请求选项参数,用于作为重定向处理函数,如果设置了该选项,则会在重定向时调用该函数,如果该函数返回 true,则会继续重定向,否则不会重定向。其第一个参数为是否使用 https 协议,第二个参数为原始请求报文,第三个参数为原始响应报文 |
poc.redirectTimes | redirectTimes 是一个请求选项参数,用于指定最大重定向次数,默认为5次 |
poc.replaceAllPostParams | replaceAllPostParams 是一个请求选项参数,用于改变请求报文,修改所有POST请求参数,如果不存在则会增加,其接收一个map[string]string类型的参数,其中key为POST请求参数名,value为POST请求参数值 |
poc.replaceAllPostParamsWithoutEscape | replaceAllPostParamsWithoutEscape 是一个请求选项参数,用于改变请求报文,修改所有POST请求参数,如果不存在则会增加,其接收一个map[string]string类型的参数,其中key为POST请求参数名,value为POST请求参数值 与 poc.replace... |
poc.replaceAllQueryParams | replaceAllQueryParams 是一个请求选项参数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值 |
poc.replaceAllQueryParamsWithoutEscape | replaceAllQueryParamsWithoutEscape 是一个请求选项参数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值 与 poc.replaceAl... |
poc.replaceBasicAuth | replaceBasicAuth 是一个请求选项参数,用于改变请求报文,修改 Authorization 请求头为基础认证的密文,如果不存在则会增加,实际上是replaceHeader("Authorization", codec.EncodeBase64(username + &#... |
poc.replaceBody | replaceBody 是一个请求选项参数,用于改变请求报文,修改请求体内容,第一个参数为修改后的请求体内容,第二个参数为是否分块传输 |
poc.replaceCookie | replaceCookie 是一个请求选项参数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加 |
poc.replaceCookies | replaceAllCookies 是一个请求选项参数,用于改变请求报文,修改所有Cookie请求头中的值 |
poc.replaceFirstLine | replaceFirstLine 是一个请求选项参数,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本) |
poc.replaceFormEncoded | replaceFormEncoded 是一个请求选项参数,用于改变请求报文,修改请求体中的表单,如果不存在则会增加 |
poc.replaceHeader | replaceHeader 是一个请求选项参数,用于改变请求报文,修改修改请求头,如果不存在则会增加 |
poc.replaceHost | replaceHost 是一个请求选项参数,用于改变请求报文,修改Host请求头,如果不存在则会增加,实际上是replaceHeader("Host", host)的简写 |
poc.replaceMethod | replaceMethod 是一个请求选项参数,用于改变请求报文,修改请求方法 |
poc.replacePath | replacePath 是一个请求选项参数,用于改变请求报文,修改请求路径 |
poc.replacePostParam | replacePostParam 是一个请求选项参数,用于改变请求报文,修改 POST 请求参数,如果不存在则会增加 |
poc.replaceQueryParam | replaceQueryParam 是一个请求选项参数,用于改变请求报文,修改 GET 请求参数,如果不存在则会增加 |
poc.replaceRandomUserAgent | replaceRandomUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头为随机的常见请求头 |
poc.replaceUploadFile | replaceUploadFile 是一个请求选项参数,用于改变请求报文,修改请求体中的上传的文件,其中第一个参数为表单名,第二个参数为文件名,第三个参数为文件内容,第四个参数是可选参数,为文件类型(Content-Type),如果不存在则会增加 |
poc.replaceUserAgent | replaceUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头,实际上是replaceHeader("User-Agent", userAgent)的简写 |
poc.retryInStatusCode | retryInStatusCode 是一个请求选项参数,用于指定在某些响应状态码的情况下重试,需要搭配 retryTimes 使用 |
poc.retryMaxWaitTime | retryMaxWaitTime 是一个请求选项参数,用于指定重试时最大等待时间,需要搭配 retryTimes 使用,默认为2秒 |
poc.retryNotInStatusCode | retryNotInStatusCode 是一个请求选项参数,用于指定非某些响应状态码的情况下重试,需要搭配 retryTimes 使用 |
poc.retryTimes | retryTimes 是一个请求选项参数,用于指定请求失败时的重试次数,需要搭配 retryInStatusCode 或 retryNotInStatusCode 使用,来设置在什么响应码的情况下重试 |
poc.retryWaitTime | retryWaitTime 是一个请求选项参数,用于指定重试时最小等待时间,需要搭配 retryTimes 使用,默认为0.1秒 |
poc.save | save 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,默认为true即会保存到数据库 |
poc.saveHandler | saveHandler 是一个请求选项参数,用于设置在将此次请求存入数据库之前的回调函数 |
poc.saveSync | saveSync 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,且同步保存,默认为false即会异步保存到数据库 |
poc.session | session 是一个请求选项参数,用于指定请求的session,参数可以是任意类型的值,用此值做标识符从而找到唯一的session。使用session进行请求时会自动管理cookie,这在登录后操作的场景非常有用 |
poc.sni | sni 是一个请求选项参数,用于指定使用 tls(https) 协议时的 服务器名称指示(SNI) |
poc.source | source 是一个请求选项参数,用于在请求记录保存到数据库时标识此次请求的来源 |
poc.timeout | timeout 是一个请求选项参数,用于指定读取超时时间,默认为15秒 |
poc.username | username 是一个请求选项参数,用于指定认证时的用户名 |
poc.websocket | websocket 是一个请求选项参数,用于允许将链接升级为 websocket,此时发送的请求应该为 websocket 握手请求 |
poc.websocketFromServer | websocketFromServer 是一个请求选项参数,它接收一个回调函数,这个函数有两个参数,其中第一个参数为服务端发送的数据,第二个参数为取消函数,调用将会强制断开 websocket |
poc.websocketOnClient | websocketOnClient 是一个请求选项参数,它接收一个回调函数,这个函数有一个参数,是WebsocketClient结构体,通过该结构体可以向服务端发送数据 |
poc.websocketStrictMode | websocketStrictMode 是一个请求选项参数,它用于控制是否启用严格模式,如果启用严格模式,则会遵循 RFC 6455 规范 |
#
函数定义#
详细描述#
定义``
#
#
详细描述#
定义``
#
AppendHTTPPacketCookie#
详细描述AppendHTTPPacketCookie 是一个辅助函数,用于改变请求报文,添加Cookie请求头中的值
Example:
poc.AppendHTTPPacketCookie(poc.BasicRequest(), "aaa", "bbb") // 添加cookie键值对aaa:bbb
#
定义AppendHTTPPacketCookie(packet []byte, key string, value any) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
AppendHTTPPacketFormEncoded#
详细描述AppendHTTPPacketFormEncoded 是一个辅助函数,用于改变请求报文,添加请求体中的表单
Example:
poc.AppendHTTPPacketFormEncoded(`POST /post HTTP/1.1Host: pie.devContent-Type: multipart/form-data; boundary=------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Length: 203
--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Disposition: form-data; name="aaa"
bbb--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFm--`, "ccc", "ddd") // 添加POST请求表单,其中ccc为键,ddd为值
#
定义AppendHTTPPacketFormEncoded(packet []byte, key string, value string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
AppendHTTPPacketHeader#
详细描述AppendHTTPPacketHeader 是一个辅助函数,用于改变请求报文,添加请求头
Example:
poc.AppendHTTPPacketHeader(poc.BasicRequest(), "AAA", "BBB") // 添加AAA请求头的值为BBB
#
定义AppendHTTPPacketHeader(packet []byte, headerKey string, headerValue any) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
headerKey | string | |
headerValue | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
AppendHTTPPacketPath#
详细描述AppendHTTPPacketPath 是一个辅助函数,用于改变请求报文,在现有请求路径后添加请求路径
Example:
poc.AppendHTTPPacketPath(`GET /docs HTTP/1.1Host: yaklang.com`, "/api/poc")) // 向 example.com 发起请求,实际上请求路径改为/docs/api/poc
#
定义AppendHTTPPacketPath(packet []byte, p string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
p | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
AppendHTTPPacketPostParam#
详细描述AppendHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,添加POST请求参数
Example:
poc.AppendHTTPPacketPostParam(poc.BasicRequest(), "a", "b") // 向 pie.dev 发起请求,添加POST请求参数a,值为b
#
定义AppendHTTPPacketPostParam(packet []byte, key string, value string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
AppendHTTPPacketQueryParam#
详细描述AppendHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,添加GET请求参数
Example:
poc.AppendHTTPPacketQueryParam(poc.BasicRequest(), "a", "b") // 添加GET请求参数a,值为b
#
定义AppendHTTPPacketQueryParam(packet []byte, key string, value string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
AppendHTTPPacketUploadFile#
详细描述AppendHTTPPacketUploadFile 是一个辅助函数,用于改变请求报文,添加请求体中的上传的文件,其中第一个参数为原始请求报文,第二个参数为表单名,第三个参数为文件名,第四个参数为文件内容,第五个参数是可选参数,为文件类型(Content-Type)
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("POST", "https://pie.dev/post")poc.AppendHTTPPacketUploadFile(raw, "file", "phpinfo.php", "<?php phpinfo(); ?>", "image/jpeg")) // 添加POST请求表单,其文件名为phpinfo.php,内容为<?php phpinfo(); ?>,文件类型为image/jpeg
#
定义AppendHTTPPacketUploadFile(packet []byte, fieldName string, fileName string, fileContent any, contentType ...string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
fieldName | string | |
fileName | string | |
fileContent | any | |
contentType | ...string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
BuildRequest#
详细描述BuildRequest 是一个用于辅助构建请求报文的工具函数,它第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,修改请求报文的选项将被作用,最后返回构建好的请求报文
Example:
raw = poc.BuildRequest(poc.BasicRequest(), poc.https(true), poc.replaceHost("yaklang.com"), poc.replacePath("/docs/api/poc")) // 构建一个基础GET请求,修改其Host为yaklang.com,访问的URI路径为/docs/api/poc// raw = b"GET /docs/api/poc HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n"
#
定义BuildRequest(i any, opts ...PocConfigOption) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
CurlToHTTPRequest#
详细描述CurlToHTTPRequest 尝试将curl命令转换为HTTP请求报文,其返回值为bytes,即转换后的HTTP请求报文
Example:
poc.CurlToHTTPRequest("curl -X POST -d 'a=b&c=d' http://example.com")
#
定义CurlToHTTPRequest(command string) (req []byte)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
command | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
req | []byte |
#
Delete#
详细描述Delete 向指定 URL 发送 DELETE 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
poc.Delete("https://yaklang.com", poc.https(true)) // 向yaklang.com发送一个基于HTTPS协议的DELETE请求desc(rsp) // 查看响应结构体中的可用字段
#
定义Delete(urlStr string, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
urlStr | string | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
DeleteHTTPPacketCookie#
详细描述DeleteHTTPPacketCookie 是一个辅助函数,用于改变请求报文,删除Cookie中的值
Example:
poc.DeleteHTTPPacketCookie(`GET /get HTTP/1.1Content-Type: application/jsonCookie: aaa=bbb; ccc=dddHost: pie.dev
`, "aaa") // 删除Cookie中的aaa
#
定义DeleteHTTPPacketCookie(packet []byte, key string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
DeleteHTTPPacketForm#
详细描述DeleteHTTPPacketForm 是一个辅助函数,用于改变请求报文,删除POST请求表单
Example:
poc.DeleteHTTPPacketForm(`POST /post HTTP/1.1Host: pie.devContent-Type: multipart/form-data; boundary=------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Length: 308
--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Disposition: form-data; name="aaa"
bbb--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Disposition: form-data; name="ccc"
ddd--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFm--`, "aaa") // 删除POST请求表单aaa
#
定义DeleteHTTPPacketForm(packet []byte, key string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
DeleteHTTPPacketHeader#
详细描述DeleteHTTPPacketHeader 是一个辅助函数,用于改变请求报文,删除请求头
Example:
poc.DeleteHTTPPacketHeader(`GET /get HTTP/1.1Content-Type: application/jsonAAA: BBBHost: pie.dev
`, "AAA") // 删除AAA请求头
#
定义DeleteHTTPPacketHeader(packet []byte, headerKey string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
headerKey | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
DeleteHTTPPacketPostParam#
详细描述DeleteHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,删除POST请求参数
Example:
poc.DeleteHTTPPacketPostParam(`POST /post HTTP/1.1Content-Type: application/jsonContent-Length: 7Host: pie.dev
a=b&c=d`, "a") // 删除POST请求参数a
#
定义DeleteHTTPPacketPostParam(packet []byte, key string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
DeleteHTTPPacketQueryParam#
详细描述DeleteHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,删除GET请求参数
Example:
poc.DeleteHTTPPacketQueryParam(`GET /get?a=b&c=d HTTP/1.1Content-Type: application/jsonHost: pie.dev
`, "a") // 删除GET请求参数a
#
定义DeleteHTTPPacketQueryParam(packet []byte, key string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
Do#
详细描述Do 向指定 URL 发送指定请求方法的请求并且返回响应结构体,请求结构体以及错误,它的是第一个参数是请求方法,第二个参数 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
poc.Do("GET","https://yaklang.com", poc.https(true)) // 向yaklang.com发送一个基于HTTPS协议的GET请求desc(rsp) // 查看响应结构体中的可用字段
#
定义Do(method string, urlStr string, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
method | string | |
urlStr | string | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
ExtractPostParams#
详细描述ExtractPostParams 尝试将 HTTP 请求报文中的各种 POST 参数(普通格式,表单格式,JSON格式,XML格式)提取出来,返回提取出来的 POST 参数与错误
Example:
params, err = poc.ExtractPostParams("POST / HTTP/1.1\r\nContent-Type: application/json\r\nHost: example.com\r\n\r\n{\"key\": \"value\"}")dump(params) // {"key": "value"}
#
定义ExtractPostParams(raw []byte) (map[string]string, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | map[string]string | |
r2 | error |
#
FixHTTPPacketCRLF#
详细描述FixHTTPPacketCRLF 修复一个HTTP报文的CRLF问题(正常的报文每行末尾为\r\n,但是某些报文可能是有\n),如果noFixLength为true,则不会修复Content-Length,否则会尝试修复Content-Length
Example:
poc.FixHTTPPacketCRLF(`POST / HTTP/1.1Host: example.comContent-Length: 11
hello world`, false)
#
定义FixHTTPPacketCRLF(raw []byte, noFixLength bool) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte | |
noFixLength | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
FixHTTPRequest#
详细描述FixHTTPRequest 尝试对传入的HTTP请求报文进行修复,并返回修复后的请求
Example:
poc.FixHTTPRequest(b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
#
定义FixHTTPRequest(raw []byte) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
FixHTTPResponse#
详细描述FixHTTPResponse 尝试对传入的 HTTP 响应报文进行修复,并返回修复后的响应
Example:
poc.FixHTTPResponse(b"HTTP/1.1 200 OK\nContent-Length: 5\n\nhello")
#
定义FixHTTPResponse(r []byte) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
r | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
Get#
详细描述Get 向指定 URL 发送 GET 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
poc.Get("https://yaklang.com", poc.https(true)) // 向yaklang.com发送一个基于HTTPS协议的GET请求desc(rsp) // 查看响应结构体中的可用字段
#
定义Get(urlStr string, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
urlStr | string | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
GetAllHTTPPacketPostParams#
详细描述GetAllHTTPPacketPostParams 是一个辅助函数,用于获取请求报文中的所有POST请求参数,其返回值为map[string]string,其中键为参数名,值为参数值
Example:
poc.GetAllHTTPPacketPostParams(`POST /post HTTP/1.1Content-Type: application/jsonCOntent-Length: 7Host: pie.dev
a=b&c=d`) // 获取所有POST请求参数
#
定义GetAllHTTPPacketPostParams(packet []byte) (params map[string]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
params | map[string]string |
#
GetAllHTTPPacketPostParamsFull#
详细描述GetAllHTTPPacketPostParamsFull 是一个辅助函数,用于获取请求报文中的所有POST请求参数,其返回值为map[string][]string,其中键为参数名,值为参数值切片
Example:
poc.GetAllHTTPPacketPostParams(`POST /post HTTP/1.1Content-Type: application/jsonCOntent-Length: 7Host: pie.dev
a=b&a=c`) // 获取所有POST请求参数,这里会返回{"a":["b", "c"]}
#
定义GetAllHTTPPacketPostParamsFull(packet []byte) (params map[string][]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
params | map[string][]string |
#
GetAllHTTPPacketQueryParams#
详细描述GetAllHTTPPacketQueryParams 是一个辅助函数,用于获取请求报文中的所有GET请求参数,其返回值为map[string]string,其中键为参数名,值为参数值
Example:
poc.GetAllHTTPPacketQueryParams(`GET /get?a=b&c=d HTTP/1.1Content-Type: application/jsonHost: pie.dev
`) // 获取所有GET请求参数
#
定义GetAllHTTPPacketQueryParams(packet []byte) (params map[string]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
params | map[string]string |
#
GetAllHTTPPacketQueryParamsFull#
详细描述GetAllHTTPPacketQueryParamsFull 是一个辅助函数,用于获取请求报文中的所有GET请求参数,其返回值为map[string][]string,其中键为参数名,值为参数值切片
Example:
poc.GetAllHTTPPacketQueryParamsFull(`GET /get?a=b&a=c HTTP/1.1Content-Type: application/jsonHost: pie.dev
`) // 返回所有GET请求参数,这里会返回{"a":["b", "c"]}
#
定义GetAllHTTPPacketQueryParamsFull(packet []byte) (params map[string][]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
params | map[string][]string |
#
GetHTTPPacketBody#
详细描述GetHTTPPacketBody 是一个辅助函数,用于获取请求报文中的请求体,其返回值为bytes
Example:
poc.GetHTTPPacketBody(`POST /post HTTP/1.1Content-Type: application/jsonCOntent-Length: 7Host: pie.dev
a=b&c=d`) // 获取请求头,这里为b"a=b&c=d"
#
定义GetHTTPPacketBody(packet []byte) (body []byte)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
body | []byte |
#
GetHTTPPacketContentType#
详细描述GetHTTPPacketContentType 是一个辅助函数,用于获取请求报文中的Content-Type请求头,其返回值为string
Example:
poc.GetHTTPPacketContentType(`POST /post HTTP/1.1Content-Type: application/jsonCOntent-Length: 7Host: pie.dev
a=b&c=d`) // 获取Content-Type请求头
#
定义GetHTTPPacketContentType(packet []byte) (contentType string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
contentType | string |
#
GetHTTPPacketCookie#
详细描述GetHTTPPacketCookie 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为string
Example:
poc.GetHTTPPacketCookie(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; c=dHost: pie.dev
`, "a") // 获取键名为a的Cookie值,这里会返回"b"
#
定义GetHTTPPacketCookie(packet []byte, key string) (cookieValue string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
cookieValue | string |
#
GetHTTPPacketCookieFirst#
详细描述GetHTTPPacketCookieFirst 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为string
Example:
poc.GetHTTPPacketCookieFirst(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; c=dHost: pie.dev
`, "a") // 获取键名为a的Cookie值,这里会返回"b"
#
定义GetHTTPPacketCookieFirst(packet []byte, key string) (cookieValue string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
cookieValue | string |
#
GetHTTPPacketCookieValues#
详细描述GetHTTPPacketCookieValues 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为[]string,这是因为Cookie可能存在多个相同键名的值
Example:
poc.GetHTTPPacketCookieValues(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=cHost: pie.dev
`, "a") // 获取键名为a的Cookie值,这里会返回["b", "c"]
#
定义GetHTTPPacketCookieValues(packet []byte, key string) (cookieValues []string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
cookieValues | []string |
#
GetHTTPPacketCookies#
详细描述GetHTTPPacketCookies 是一个辅助函数,用于获取请求报文中所有Cookie值,其返回值为map[string]string
Example:
poc.GetHTTPPacketCookies(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; c=dHost: pie.dev
`) // 获取所有Cookie值,这里会返回{"a":"b", "c":"d"}
#
定义GetHTTPPacketCookies(packet []byte) (cookies map[string]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
cookies | map[string]string |
#
GetHTTPPacketCookiesFull#
详细描述GetHTTPPacketCookiesFull 是一个辅助函数,用于获取请求报文中所有Cookie值,其返回值为map[string][]string,这是因为Cookie可能存在多个相同键名的值
Example:
poc.GetHTTPPacketCookiesFull(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=c; c=dHost: pie.dev
`) // 获取所有Cookie值,这里会返回{"a":["b", "c"], "c":["d"]}
#
定义GetHTTPPacketCookiesFull(packet []byte) (cookies map[string][]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
cookies | map[string][]string |
#
GetHTTPPacketFirstLine#
详细描述GetHTTPPacketFirstLine 是一个辅助函数,用于获取 HTTP 报文中第一行的值,其返回值为string,string,string
在请求报文中,其三个返回值分别为:请求方法,请求URI,协议版本
在响应报文中,其三个返回值分别为:协议版本,状态码,状态码描述
Example:
poc.GetHTTPPacketFirstLine(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=c; c=dHost: pie.dev
`) // 获取请求方法,请求URI,协议版本,这里会返回"GET", "/get", "HTTP/1.1"
#
定义GetHTTPPacketFirstLine(packet []byte) (string, string, string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | string | |
r2 | string | |
r3 | string |
#
GetHTTPPacketHeader#
详细描述GetHTTPPacketHeader 是一个辅助函数,用于获取请求报文中指定的请求头,其返回值为string
Example:
poc.GetHTTPPacketHeader(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=c; c=dHost: pie.dev
`, "Content-Type") // 获取Content-Type请求头,这里会返回"application/json"
#
定义GetHTTPPacketHeader(packet []byte, key string) (header string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
header | string |
#
GetHTTPPacketHeaders#
详细描述GetHTTPPacketHeaders 是一个辅助函数,用于获取请求报文中所有请求头,其返回值为map[string]string
Example:
poc.GetHTTPPacketHeaders(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=c; c=dHost: pie.dev
`) // 获取所有请求头,这里会返回{"Content-Type": "application/json", "Cookie": "a=b; a=c; c=d", "Host": "pie.dev"}
#
定义GetHTTPPacketHeaders(packet []byte) (headers map[string]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
headers | map[string]string |
#
GetHTTPPacketHeadersFull#
详细描述GetHTTPPacketHeadersFull 是一个辅助函数,用于获取请求报文中所有请求头,其返回值为map[string][]string,这是因为请求头可能存在多个相同键名的值
Example:
poc.GetHTTPPacketHeadersFull(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=c; c=dCookie: e=fHost: pie.dev
`) // 获取所有请求头,这里会返回{"Content-Type": ["application/json"], "Cookie": []"a=b; a=c; c=d", "e=f"], "Host": ["pie.dev"]}
#
定义GetHTTPPacketHeadersFull(packet []byte) (headers map[string][]string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
headers | map[string][]string |
#
GetHTTPPacketPostParam#
详细描述GetHTTPPacketPostParam 是一个辅助函数,用于获取请求报文中指定的POST请求参数,其返回值为string
Example:
poc.GetHTTPPacketPostParam(`POST /post HTTP/1.1Content-Type: application/jsonCOntent-Length: 7Host: pie.dev
a=b&c=d`, "a") // 获取POST请求参数a的值
#
定义GetHTTPPacketPostParam(packet []byte, key string) (paramValue string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
paramValue | string |
#
GetHTTPPacketQueryParam#
详细描述GetHTTPPacketQueryParam 是一个辅助函数,用于获取请求报文中指定的GET请求参数,其返回值为string
Example:
poc.GetHTTPPacketQueryParam(`GET /get?a=b&c=d HTTP/1.1Content-Type: application/jsonHost: pie.dev
`, "a") // 获取GET请求参数a的值
#
定义GetHTTPPacketQueryParam(packet []byte, key string) (paramValue string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
paramValue | string |
#
GetHTTPRequestMethod#
详细描述GetHTTPRequestMethod 是一个辅助函数,用于获取请求报文中的请求方法,其返回值为string
Example:
poc.GetHTTPRequestMethod(`GET /get HTTP/1.1Content-Type: application/jsonCookie: a=b; a=c; c=dHost: pie.dev
`) // 获取请求方法,这里会返回"GET"
#
定义GetHTTPRequestMethod(packet []byte) (method string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
method | string |
#
GetHTTPRequestPath#
详细描述GetHTTPRequestPath 是一个辅助函数,用于获取响应报文中的路径,返回值是 string,包含 query
Example:
poc.GetHTTPRequestPath("GET /a/bc.html?a=1 HTTP/1.1\r\nHost: www.example.com\r\n\r\n") // /a/bc.html?a=1
#
定义GetHTTPRequestPath(packet []byte) (path string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
path | string |
#
GetHTTPRequestPathWithoutQuery#
详细描述GetHTTPRequestPathWithoutQuery 是一个辅助函数,用于获取响应报文中的路径,返回值是 string,不包含 query
Example:
poc.GetHTTPRequestPathWithoutQuery("GET /a/bc.html?a=1 HTTP/1.1\r\nHost: www.example.com\r\n\r\n") // /a/bc.html
#
定义GetHTTPRequestPathWithoutQuery(packet []byte) (path string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
path | string |
#
GetStatusCodeFromResponse#
详细描述GetStatusCodeFromResponse 是一个辅助函数,用于获取响应报文中的状态码,其返回值为int
Example:
poc.GetStatusCodeFromResponse(`HTTP/1.1 200 OKContent-Length: 5
hello`) // 获取响应报文中的状态码,这里会返回200
#
定义GetStatusCodeFromResponse(packet []byte) (statusCode int)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
statusCode | int |
#
GetUrlFromHTTPRequest#
详细描述GetUrlFromHTTPRequest 是一个辅助函数,用于获取请求报文中的URL,其返回值为string
Example:
poc.GetUrlFromHTTPRequest("https", `GET /get HTTP/1.1Content-Type: application/jsonHost: pie.dev
`) // 获取URL,这里会返回"https://pie.dev/get"
#
定义GetUrlFromHTTPRequest(scheme string, packet []byte) (url string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
scheme | string | |
packet | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
url | string |
#
HTTP#
详细描述HTTP 发送请求并且返回原始响应报文,原始请求报文以及错误,它的第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等
Example:
poc.HTTP("GET / HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n", poc.https(true), poc.replaceHeader("AAA", "BBB")) // yaklang.com发送一个基于HTTPS协议的GET请求,并且添加一个请求头AAA,它的值为BBB
#
定义HTTP(i any, opts ...PocConfigOption) (rsp []byte, req []byte, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rsp | []byte | |
req | []byte | |
err | error |
#
HTTPEx#
详细描述HTTPEx 与 HTTP 类似,它发送请求并且返回响应结构体,请求结构体以及错误,它的第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
rsp, req, err = poc.HTTPEx(`GET / HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n`, poc.https(true), poc.replaceHeader("AAA", "BBB")) // 向yaklang.com发送一个基于HTTPS协议的GET请求,并且添加一个请求头AAA,它的值为BBBdesc(rsp) // 查看响应结构体中的可用字段
#
定义HTTPEx(i any, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
HTTPPacketForceChunked#
详细描述HTTPPacketForceChunked 将一个HTTP报文的body强制转换为chunked编码
Example:
poc.HTTPPacketForceChunked(`POST / HTTP/1.1Host: example.comContent-Length: 11
hello world`)
#
定义HTTPPacketForceChunked(raw []byte) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
HTTPRequestToCurl#
详细描述HTTPRequestToCurl 尝试将 HTTP 请求报文转换为curl命令。第一个参数为是否使用HTTPS,第二个参数为HTTP请求报文,其返回值为string,即转换后的curl命令
Example:
poc.HTTPRequestToCurl(true, "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
#
定义HTTPRequestToCurl(https bool, raw any) (curlCommand string)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
https | bool | |
raw | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
curlCommand | string |
#
Head#
详细描述Head 向指定 URL 发送 HEAD 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
poc.Head("https://yaklang.com", poc.https(true)) // 向yaklang.com发送一个基于HTTPS协议的HEAD请求desc(rsp) // 查看响应结构体中的可用字段
#
定义Head(urlStr string, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
urlStr | string | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
IsResponse#
详细描述IsResp 判断传入的数据是否为 HTTP 响应报文
Example:
poc.IsResp(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok") // true
#
定义IsResponse(raw any) (isHTTPResponse bool)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
isHTTPResponse | bool |
#
Options#
详细描述Options 向指定 URL 发送 OPTIONS 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
poc.Options("https://yaklang.com", poc.https(true)) // 向yaklang.com发送一个基于HTTPS协议的Options请求desc(rsp) // 查看响应结构体中的可用字段
#
定义Options(urlStr string, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
urlStr | string | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
ParseBytesToHTTPRequest#
详细描述ParseBytesToHTTPRequest 将字节数组解析为 HTTP 请求
Example:
req, err := str.ParseBytesToHTTPRequest(b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
#
定义ParseBytesToHTTPRequest(raw []byte) (reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
reqInst | *http.Request | |
err | error |
#
ParseBytesToHTTPResponse#
详细描述ParseBytesToHTTPResponse 将字节数组解析为 HTTP 响应
Example:
res, err := str.ParseBytesToHTTPResponse(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok")
#
定义ParseBytesToHTTPResponse(res []byte) (rspInst *http.Response, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
res | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *http.Response | |
err | error |
#
ParseMultiPartFormWithCallback#
详细描述ParseMultiPartFormWithCallback 是一个辅助函数,用于尝试解析请求报文体中的表单并进行回调
Example:
poc.ParseMultiPartFormWithCallback(`POST /post HTTP/1.1Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gWHost: pie.dev
------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="a"
1------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="b"
2------WebKitFormBoundary7MA4YWxkTrZu0gW--`, func(part) {content = string(io.ReadAll(part)~)println(part.FileName(), part.FormName(), content)})
#
定义ParseMultiPartFormWithCallback(req []byte, callback func(part *multipart.Part)) (err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
req | []byte | |
callback | func(part *multipart.Part) |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
err | error |
#
ParseUrlToHTTPRequestRaw#
详细描述ParseUrlToHTTPRequestRaw 将URL解析为原始 HTTP 请求报文,返回是否为 HTTPS,原始请求报文与错误
Example:
ishttps, raw, err = poc.ParseUrlToHTTPRequestRaw("GET", "https://yaklang.com")
#
定义ParseUrlToHTTPRequestRaw(method string, i any) (isHttps bool, req []byte, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
method | string | |
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
isHttps | bool | |
req | []byte | |
err | error |
#
Post#
详细描述Post 向指定 URL 发送 POST 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等
关于结构体中的可用字段和方法可以使用 desc 函数进行查看
Example:
poc.Post("https://yaklang.com", poc.https(true)) // 向yaklang.com发送一个基于HTTPS协议的POST请求desc(rsp) // 查看响应结构体中的可用字段
#
定义Post(urlStr string, opts ...PocConfigOption) (rspInst *lowhttp.LowhttpResponse, reqInst *http.Request, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
urlStr | string | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rspInst | *lowhttp.LowhttpResponse | |
reqInst | *http.Request | |
err | error |
#
ReplaceAllHTTPPacketPostParams#
详细描述ReplaceAllHTTPPacketPostParams 是一个辅助函数,用于改变请求报文,修改所有 POST 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为 POST 请求参数名,value 为 POST 请求参数值
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("POST", "https://pie.dev/post")poc.ReplaceAllHTTPPacketPostParams(raw, {"a":"b", "c":"d"}) // 添加POST请求参数a,值为b,POST请求参数c,值为d
#
定义ReplaceAllHTTPPacketPostParams(packet []byte, values map[string]string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceAllHTTPPacketPostParamsWithoutEscape#
详细描述ReplaceAllHTTPPacketPostParamsWithoutEscape 是一个辅助函数,用于改变请求报文,修改所有 POST 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为 POST 请求参数名,value 为 POST 请求参数值
与 poc.ReplaceAllHTTPPacketPostParams 类似,但是不会将参数值进行转义
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("POST", "https://pie.dev/post")poc.ReplaceAllHTTPPacketPostParamsWithoutEscape(raw, {"a":"b", "c":"d"}) // 添加POST请求参数a,值为b,POST请求参数c,值为d
#
定义ReplaceAllHTTPPacketPostParamsWithoutEscape(packet []byte, values map[string]string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceAllHTTPPacketQueryParams#
详细描述ReplaceAllHTTPPacketQueryParams 是一个辅助函数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值
Example:
poc.ReplaceAllHTTPPacketQueryParams(poc.BasicRequest(), {"a":"b", "c":"d"}) // 添加GET请求参数a,值为b,添加GET请求参数c,值为d
#
定义ReplaceAllHTTPPacketQueryParams(packet []byte, values map[string]string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceAllHTTPPacketQueryParamsWithoutEscape#
详细描述ReplaceAllHTTPPacketQueryParamsWithoutEscape 是一个辅助函数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值
与 poc.ReplaceAllHTTPPacketQueryParams 类似,但是不会将参数值进行转义
Example:
poc.ReplaceAllHTTPPacketQueryParamsWithoutEscape(poc.BasicRequest(), {"a":"b", "c":"d"}) // 添加GET请求参数a,值为b,添加GET请求参数c,值为d
#
定义ReplaceAllHTTPPacketQueryParamsWithoutEscape(packet []byte, values map[string]string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceBody#
详细描述ReplaceBody 将原始 HTTP 请求报文中的 body 替换为指定的 body,并指定是否为 chunked,返回新的 HTTP 请求报文
Example:
poc.ReplaceBody(`POST / HTTP/1.1Host: example.comContent-Length: 11
hello world`, "hello yak", false)
#
定义ReplaceBody(raw []byte, body []byte, chunk bool) (newHTTPRequest []byte)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte | |
body | []byte | |
chunk | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
newHTTPRequest | []byte |
#
ReplaceHTTPPacketBasicAuth#
详细描述ReplaceHTTPPacketBasicAuth 是一个辅助函数,用于改变请求报文,修改Authorization请求头为基础认证的密文,如果不存在则会增加,实际上是ReplaceHTTPPacketHeader("Authorization", codec.EncodeBase64(username + ":" + password))的简写
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("GET", "https://pie.dev/basic-auth/admin/password")poc.ReplaceHTTPPacketBasicAuth(raw, "admin", "password") // 修改Authorization请求头
#
定义ReplaceHTTPPacketBasicAuth(packet []byte, username string, password string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
username | string | |
password | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketBody#
详细描述ReplaceHTTPPacketBody 是一个辅助函数,用于改变 HTTP 报文,修改 HTTP 报文主体内容,第一个参数为原始 HTTP 报文,第二个参数为修改的报文主体内容
Example:
poc.ReplaceHTTPPacketBody(poc.BasicRequest(), "a=b") // 修改请求体内容为a=b
#
定义ReplaceHTTPPacketBody(packet []byte, body []byte) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
body | []byte |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketCookie#
详细描述ReplaceHTTPPacketCookie 是一个辅助函数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加
Example:
poc.ReplaceHTTPPacketCookie(poc.BasicRequest(), "aaa", "bbb") // 修改cookie值,由于这里没有aaa的cookie值,所以会增加
#
定义ReplaceHTTPPacketCookie(packet []byte, key string, value any) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketCookies#
详细描述ReplaceHTTPPacketCookies 是一个辅助函数,用于改变请求报文,修改Cookie请求头
Example:
poc.ReplaceHTTPPacketCookies(poc.BasicRequest(), {"aaa":"bbb", "ccc":"ddd"}) // 修改cookie值为aaa=bbb;ccc=ddd
#
定义ReplaceHTTPPacketCookies(packet []byte, m any) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
m | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketFirstLine#
详细描述ReplaceHTTPPacketFirstLine 是一个辅助,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本)
Example:
poc.ReplaceHTTPPacketFirstLine(`GET / HTTP/1.1Host: Example.com`, "GET /test HTTP/1.1")) // 向 example.com 发起请求,修改请求报文的第一行,请求/test路径
#
定义ReplaceHTTPPacketFirstLine(packet []byte, firstLine string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
firstLine | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketFormEncoded#
详细描述ReplaceHTTPPacketFormEncoded 是一个辅助函数,用于改变请求报文,替换请求体中的表单,如果不存在则会增加
Example:
poc.ReplaceHTTPPacketFormEncoded(`POST /post HTTP/1.1Host: pie.devContent-Type: multipart/form-data; boundary=------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Length: 203
--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Disposition: form-data; name="aaa"
bbb--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFm--`, "ccc", "ddd") // 替换POST请求表单,其中ccc为键,ddd为值
#
定义ReplaceHTTPPacketFormEncoded(packet []byte, key string, value string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketHeader#
详细描述ReplaceHTTPPacketHeader 是一个辅助函数,用于改变请求报文,修改请求头,如果不存在则会增加
Example:
poc.ReplaceHTTPPacketHeader(poc.BasicRequest(),"AAA", "BBB") // 修改AAA请求头的值为BBB,这里没有AAA请求头,所以会增加该请求头
#
定义ReplaceHTTPPacketHeader(packet []byte, headerKey string, headerValue any) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
headerKey | string | |
headerValue | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketHost#
详细描述ReplaceHTTPPacketHost 是一个辅助函数,用于改变请求报文,修改Host请求头,如果不存在则会增加,实际上是ReplaceHTTPPacketHeader("Host", host)的简写
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("GET", "https://yaklang.com")poc.ReplaceHTTPPacketHost(raw, "www.yaklang.com") // 修改Host请求头的值为 www.yaklang.com
#
定义ReplaceHTTPPacketHost(packet []byte, host string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
host | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketJsonBody#
详细描述ReplaceHTTPPacketJsonBody 是一个辅助函数,用于改变 HTTP 报文,修改 HTTP 报文主体内容( json 格式),第一个参数为原始 HTTP 报文,第二个参数为修改的报文主体内容( map 对象)
Example:
poc.ReplaceHTTPPacketJsonBody(poc.BasicRequest(), {"a":"b"}) // 修改请求体内容为{"a":"b"}
#
定义ReplaceHTTPPacketJsonBody(packet []byte, jsonMap map[string]any) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
jsonMap | map[string]any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketMethod#
详细描述ReplaceHTTPPacketMethod 是一个辅助函数,用于改变请求报文,修改请求方法
Example:
poc.ReplaceHTTPPacketMethod(poc.BasicRequest(), "OPTIONS") // 修改请求方法为OPTIONS
#
定义ReplaceHTTPPacketMethod(packet []byte, newMethod string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
newMethod | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketPath#
详细描述ReplaceHTTPPacketPath 是一个辅助函数,用于改变请求报文,修改请求路径
Example:
poc.ReplaceHTTPPacketPath(poc.BasicRequest(), "/get") // 修改请求路径为/get
#
定义ReplaceHTTPPacketPath(packet []byte, p string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
p | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketPostParam#
详细描述ReplaceHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,修改POST请求参数,如果不存在则会增加
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("POST", "https://pie.dev/post")poc.ReplaceHTTPPacketPostParam(raw, "a", "b") // 添加POST请求参数a,值为b
#
定义ReplaceHTTPPacketPostParam(packet []byte, key string, value string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketQueryParam#
详细描述ReplaceHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,修改GET请求参数,如果不存在则会增加
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("GET", "https://pie.dev/get")poc.ReplaceHTTPPacketQueryParam(raw, "a", "b") // 添加GET请求参数a,值为b
#
定义ReplaceHTTPPacketQueryParam(packet []byte, key string, value string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
ReplaceHTTPPacketUploadFile#
详细描述ReplaceHTTPPacketUploadFile 是一个辅助函数,用于改变请求报文,替换请求体中的上传的文件,其中第一个参数为原始请求报文,第二个参数为表单名,第三个参数为文件名,第四个参数为文件内容,第五个参数是可选参数,为文件类型(Content-Type),如果表单名不存在则会增加
Example:
_, raw, _ = poc.ParseUrlToHTTPRequestRaw("POST", "https://pie.dev/post")poc.ReplaceHTTPPacketUploadFile(raw, "file", "phpinfo.php", "<?php phpinfo(); ?>", "image/jpeg")) // 添加POST请求表单,其文件名为phpinfo.php,内容为<?php phpinfo(); ?>,文件类型为image/jpeg
#
定义ReplaceHTTPPacketUploadFile(packet []byte, fieldName string, fileName string, fileContent any, contentType ...string) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
packet | []byte | |
fieldName | string | |
fileName | string | |
fileContent | any | |
contentType | ...string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
Split#
详细描述Split 切割 HTTP 报文,返回响应头和响应体,其第一个参数是原始HTTP报文,接下来可以接收零个到多个回调函数,其在每次解析到请求头时回调
Example:
poc.Split(`POST / HTTP/1.1Content-Type: application/jsonHost: www.example.com
{"key": "value"}`, func(header) {dump(header)})
#
定义Split(raw []byte, hook ...func(line string)) (headers string, body []byte)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | []byte | |
hook | ...func(line string) |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
headers | string | |
body | []byte |
#
Websocket#
详细描述Websocket 实际上等价于poc.HTTP(..., poc.websocket(true))
,用于快速发送请求并建立websocket连接并且返回原始响应报文,原始请求报文以及错误
Example:
rsp, req, err = poc.Websocket(`GET / HTTP/1.1Connection: UpgradeUpgrade: websocketSec-Websocket-Version: 13Sec-Websocket-Extensions: permessage-deflate; client_max_window_bitsHost: echo.websocket.eventsAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7Sec-Websocket-Key: L31R1As+71fwuXqhwhABuA==`,
poc.proxy("http://127.0.0.1:7890"), poc.websocketFromServer(func(rsp, cancel) { dump(rsp) }), poc.websocketOnClient(func(c) { c.WriteText("123") })
)time.Sleep(100)
#
定义Websocket(raw any, opts ...PocConfigOption) (rsp []byte, req []byte, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
raw | any | |
opts | ...PocConfigOption |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
rsp | []byte | |
req | []byte | |
err | error |
#
appendCookie#
详细描述appendCookie 是一个请求选项参数,用于改变请求报文,添加 Cookie 请求头中的值
Example:
poc.Get("https://pie.dev/get", poc.appendCookie("aaa", "bbb")) // 向 pie.dev 发起请求,添加cookie键值对aaa:bbb
#
定义appendCookie(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendFormEncoded#
详细描述appendFormEncoded 是一个请求选项参数,用于改变请求报文,添加请求体中的表单
Example:
poc.Post("https://pie.dev/post", poc.appendFormEncoded("aaa", "bbb")) // 向 pie.dev 发起请求,添加POST请求表单,其中aaa为键,bbb为值
#
定义appendFormEncoded(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendHeader#
详细描述appendHeader 是一个请求选项参数,用于改变请求报文,添加请求头
Example:
poc.Post("https://pie.dev/post", poc.appendHeader("AAA", "BBB")) // 向 pie.dev 发起请求,添加AAA请求头的值为BBB
#
定义appendHeader(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendHeaders#
详细描述appendHeaders 是一个请求选项参数,用于改变请求报文,添加请求头
Example:
poc.Post("https://pie.dev/post", poc.appendHeaders({"AAA": "BBB","CCC": "DDD"})) // 向 pie.dev 发起请求,添加AAA请求头的值为BBB
#
定义appendHeaders(headers map[string]string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
headers | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendPath#
详细描述appendPath 是一个请求选项参数,用于改变请求报文,在现有请求路径后添加请求路径
Example:
poc.Get("https://yaklang.com/docs", poc.appendPath("/api/poc")) // 向 yaklang.com 发起请求,实际上请求路径为/docs/api/poc
#
定义appendPath(path string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
path | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendPostParam#
详细描述appendPostParam 是一个请求选项参数,用于改变请求报文,添加 POST 请求参数
Example:
poc.Post("https://pie.dev/post", poc.appendPostParam("a", "b")) // 向 pie.dev 发起请求,添加POST请求参数a,值为b
#
定义appendPostParam(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendQueryParam#
详细描述appendQueryParam 是一个请求选项参数,用于改变请求报文,添加 GET 请求参数
Example:
poc.Get("https://pie.dev/get", poc.appendQueryParam("a", "b")) // 向 pie.dev 发起请求,添加GET请求参数a,值为b
#
定义appendQueryParam(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
appendUploadFile#
详细描述appendUploadFile 是一个请求选项参数,用于改变请求报文,添加请求体中的上传的文件,其中第一个参数为表单名,第二个参数为文件名,第三个参数为文件内容,第四个参数是可选参数,为文件类型(Content-Type)
Example:
poc.Post("https://pie.dev/post", poc.appendUploadFile("file", "phpinfo.php", "<?php phpinfo(); ?>", "image/jpeg"))// 向 pie.dev 发起请求,添加POST请求表单,其文件名为phpinfo.php,内容为<?php phpinfo(); ?>,文件类型为image/jpeg
#
定义appendUploadFile(fieldName string, fileName string, fileContent any, contentType ...string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
fieldName | string | |
fileName | string | |
fileContent | any | |
contentType | ...string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
body#
详细描述body 是一个请求选项参数,用于指定请求的 body,需要传入一个任意类型的参数,如果不是 string 或者 bytes 会抛出日志并忽略。
Example:
poc.Post("https://www.example.com", poc.body("a=b")) // 向 www.example.com 发起请求,请求的 body 为 a=b
#
定义body(i any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
connPool#
详细描述connPool 是一个请求选项参数,用于指定是否使用连接池,默认不使用连接池
Example:
rsp, req, err = poc.HTTP(x`POST /post HTTP/1.1Content-Type: application/jsonHost: pie.dev
{"key": "asd"}`, poc.connPool(true)) // 使用连接池发送请求,这在发送多个请求时非常有用
#
定义connPool(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
connectTimeout#
详细描述connectTimeout 是一个请求选项参数,用于指定连接超时时间,默认为15秒
Example:
poc.Get("https://www.example.com", poc.timeout(15)) // 向 www.baidu.com 发起请求,读取超时时间为15秒
#
定义connectTimeout(f float64) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
f | float64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
context#
详细描述context 是一个请求选项参数,用于指定请求的上下文
Example:
ctx = context.New()poc.Get("https://exmaple.com", poc.withContext(ctx)) // 向 example.com 发起请求,使用指定的上下文
#
定义context(ctx context.Context) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
ctx | context.Context |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
deleteCookie#
详细描述deleteCookie 是一个请求选项参数,用于改变请求报文,删除 Cookie 中的值
Example:
poc.HTTP(`GET /get HTTP/1.1Content-Type: application/jsonCookie: aaa=bbb; ccc=dddHost: pie.dev
`, poc.deleteCookie("aaa"))// 向 pie.dev 发起请求,删除Cookie中的aaa
#
定义deleteCookie(key string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
deleteForm#
详细描述deleteForm 是一个请求选项参数,用于改变请求报文,删除 POST 请求表单
Example:
poc.HTTP(`POST /post HTTP/1.1Host: pie.devContent-Type: multipart/form-data; boundary=------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Length: 308
--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Disposition: form-data; name="aaa"
bbb--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFmContent-Disposition: form-data; name="ccc"
ddd--------------------------OFHnlKtUimimGcXvRSxgCZlIMAyDkuqsxeppbIFm--`, poc.deleteForm("aaa")) // 向 pie.dev 发起请求,删除POST请求表单aaa
#
定义deleteForm(key string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
deleteHeader#
详细描述deleteHeader 是一个请求选项参数,用于改变请求报文,删除请求头
Example:
poc.HTTP(`GET /get HTTP/1.1Content-Type: application/jsonAAA: BBBHost: pie.dev
`, poc.deleteHeader("AAA"))// 向 pie.dev 发起请求,删除AAA请求头
#
定义deleteHeader(key string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
deletePostParam#
详细描述deletePostParam 是一个请求选项参数,用于改变请求报文,删除 POST 请求参数
Example:
poc.HTTP(`POST /post HTTP/1.1Content-Type: application/jsonContent-Length: 7Host: pie.dev
a=b&c=d`, poc.deletePostParam("a")) // 向 pie.dev 发起请求,删除POST请求参数a
#
定义deletePostParam(key string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
deleteQueryParam#
详细描述deleteQueryParam 是一个请求选项参数,用于改变请求报文,删除 GET 请求参数
Example:
poc.HTTP(`GET /get?a=b&c=d HTTP/1.1Content-Type: application/jsonHost: pie.dev
`, poc.deleteQueryParam("a")) // 向 pie.dev 发起请求,删除GET请求参数a
#
定义deleteQueryParam(key string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
dnsNoCache#
详细描述dnsNoCache 是一个请求选项参数,用于指定请求时不使用DNS缓存,默认使用DNS缓存
Example:
// 向 example.com 发起请求,不使用DNS缓存poc.Get("https://exmaple.com", poc.dnsNoCache(true))
#
定义dnsNoCache(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
dnsServer#
详细描述dnsServer 是一个请求选项参数,用于指定请求所使用的DNS服务器,默认使用系统自带的DNS服务器
Example:
// 向 example.com 发起请求,使用指定的DNS服务器poc.Get("https://exmaple.com", poc.dnsServer("8.8.8.8", "1.1.1.1"))
#
定义dnsServer(servers ...string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
servers | ...string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
host#
详细描述host 是一个请求选项参数,用于指定实际请求的 host,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的host
Example:
poc.HTTP(poc.BasicRequest(), poc.host("yaklang.com")) // 实际上请求 yaklang.com
#
定义host(h string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
h | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
http2#
详细描述http2 是一个请求选项参数,用于指定是否使用 http2 协议,默认为 false 即使用http1协议
Example:
poc.Get("https://www.example.com", poc.http2(true), poc.https(true)) // 向 www.example.com 发起请求,使用 http2 协议
#
定义http2(isHttp2 bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
isHttp2 | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
https#
详细描述https 是一个请求选项参数,用于指定是否使用 https 协议,默认为 false 即使用 http 协议
Example:
poc.HTTP(poc.BasicRequest(), poc.https(true)) // 向 example.com 发起请求,使用 https 协议
#
定义https(isHttps bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
isHttps | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
jsRedirect#
详细描述jsRedirect 是一个请求选项参数,用于指定是否跟踪JS重定向,默认为false即不会自动跟踪JS重定向
Example:
poc.HTTP(poc.BasicRequest(), poc.redirectTimes(5), poc.jsRedirect(true)) // 向 www.baidu.com 发起请求,如果响应重定向到其他链接也会自动跟踪JS重定向,最多进行5次重定向
#
定义jsRedirect(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
json#
详细描述json 是一个请求选项参数,用于指定请求的 body 为 json 格式,需要传入一个任意类型的参数,会自动转换为 json 格式
Example:
poc.Post("https://www.example.com", poc.json({"a": "b"})) // 向 www.example.com 发起请求,请求的 body 为 {"a": "b"} 并自动设置 Content-Type 为 application/json
#
定义json(i any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
noFixContentLength#
详细描述noFixContentLength 是一个请求选项参数,用于指定是否修复响应报文中的 Content-Length 字段,默认为 false 即会自动修复Content-Length字段
Example:
poc.HTTP(poc.BasicRequest(), poc.noFixContentLength()) // 向 example.com 发起请求,如果响应报文中的Content-Length字段不正确或不存在 也不会自动修复
#
定义noFixContentLength(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
noRedirect#
详细描述noRedirect 是一个请求选项参数,用于指定是否跟踪重定向,默认为 false 即会自动跟踪重定向
Example:
poc.HTTP(poc.BasicRequest(), poc.noRedirect()) // 向 example.com 发起请求,如果响应重定向到其他链接也不会自动跟踪重定向
#
定义noRedirect(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
params#
详细描述params 是一个请求选项参数,用于在请求时使用传入的值,需要注意的是,它可以很方便地使用 str.f()
或 f-string 代替
Example: rsp, req, err = poc.HTTP(x`POST /post HTTP/1.1 Content-Type: application/json Host: pie.dev
{"key": "{{params(a)}}"}`, poc.params({"a":"bbb"})) // 实际上发送的POST参数为{"key": "bbb"}
#
定义params(i any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
password#
详细描述password 是一个请求选项参数,用于指定认证时的密码
Example:
poc.Get("https://www.example.com", poc.username("admin"), poc.password("admin"))
#
定义password(password string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
password | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
port#
详细描述port 是一个请求选项参数,用于指定实际请求的端口,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的端口
Example:
poc.HTTP(poc.BasicRequest(), poc.host("yaklang.com"), poc.port(443), poc.https(true)) // 实际上请求 yaklang.com 的443端口
#
定义port(port int) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
port | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
postData#
详细描述postData 是一个请求选项参数,用于指定请求的 body 为 post 数据,需要传入一个任意类型的参数,会自动转换为 post 数据
输入是原始字符串,不会修改 Content-Type
Example:
poc.Post("https://www.example.com", poc.postData("a=b")) // 向 www.example.com 发起请求,请求的 body 为 a=b
#
定义postData(i string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
postParams#
详细描述postParams 是一个请求选项参数,用于指定请求的 body 为 post 数据,需要传入一个任意类型的参数,会自动转换为 post 数据
输入是 map 类型,会自动转换为 post 数据,同时会自动设置 Content-Type 为 application/x-www-form-urlencoded
Example:
poc.Post("https://www.example.com", poc.postParams({"a": "b"})) // 向 www.example.com 发起请求,请求的 body 为 a=b 并自动设置 Content-Type 为 application/x-www-form-urlencoded
#
定义postParams(i any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
proxy#
详细描述proxy 是一个请求选项参数,用于指定请求使用的代理,可以指定多个代理,默认会使用系统代理
Example:
poc.HTTP(poc.BasicRequest(), poc.proxy("http://127.0.0.1:7890")) // 向 example.com 发起请求,使用 http://127.0.0.1:7890 代理
#
定义proxy(proxies ...string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
proxies | ...string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
query#
详细描述query 是一个请求选项参数,用于指定请求的 query 参数,需要传入一个任意类型的参数,会自动转换为 query 参数
如果输入的是 map 类型,则会自动转换为 query 参数,例如:{"a": "b"} 转换为 a=b
如果输入的是其他,会把字符串结果直接作为 query 设置
Example:
poc.Get("https://www.example.com", poc.query({"a": "b"})) // 向 www.example.com 发起请求,请求的 query 为 a=b, url 为 https://www.example.com?a=bpoc.Get("https://www.example.com", poc.query("a=b")) // 向 www.example.com 发起请求,请求的 query 为 a=b, url 为 https://www.example.com?a=bpoc.Get("https://www.example.com", poc.query("abc")) // 向 www.example.com 发起请求,请求的 query 为 a=b, url 为 https://www.example.com?abc
#
定义query(i any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
randomJA3#
详细描述#
定义randomJA3(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
redirectHandler#
详细描述redirectHandler 是一个请求选项参数,用于作为重定向处理函数,如果设置了该选项,则会在重定向时调用该函数,如果该函数返回 true,则会继续重定向,否则不会重定向。其第一个参数为是否使用 https 协议,第二个参数为原始请求报文,第三个参数为原始响应报文
Example:
count = 3poc.Get("https://pie.dev/redirect/5", poc.redirectHandler(func(https, req, rsp) {count--return count >= 0})) // 向 pie.edv 发起请求,使用自定义 redirectHandler 函数,使用 count 控制,进行最多3次重定向
#
定义redirectHandler(i func(isHttps bool, req, rsp []byte) bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | func(isHttps bool, req, rsp []byte) bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
redirectTimes#
详细描述redirectTimes 是一个请求选项参数,用于指定最大重定向次数,默认为5次
Example:
poc.HTTP(poc.BasicRequest(), poc.redirectTimes(5)) // 向 example.com 发起请求,如果响应重定向到其他链接,则会自动跟踪重定向最多5次
#
定义redirectTimes(t int) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
t | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceAllPostParams#
详细描述replaceAllPostParams 是一个请求选项参数,用于改变请求报文,修改所有POST请求参数,如果不存在则会增加,其接收一个map[string]string类型的参数,其中key为POST请求参数名,value为POST请求参数值
Example:
poc.Post("https://pie.dev/post", poc.replaceAllPostParams({"a":"b", "c":"d"})) // 向 pie.dev 发起请求,添加POST请求参数a,值为b,POST请求参数c,值为d
#
定义replaceAllPostParams(values map[string]string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceAllPostParamsWithoutEscape#
详细描述replaceAllPostParamsWithoutEscape 是一个请求选项参数,用于改变请求报文,修改所有POST请求参数,如果不存在则会增加,其接收一个map[string]string类型的参数,其中key为POST请求参数名,value为POST请求参数值
与 poc.replaceAllPostParams 类似,但是不会将参数值进行转义
Example:
poc.Post("https://pie.dev/post", poc.replaceAllPostParamsWithoutEscape({"a":"{{}}", "c":"%%"})) // 向 pie.dev 发起请求,添加POST请求参数a,值为{{}},POST请求参数c,值为%%
#
定义replaceAllPostParamsWithoutEscape(values map[string]string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceAllQueryParams#
详细描述replaceAllQueryParams 是一个请求选项参数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值
Example:
poc.Get("https://pie.dev/get", poc.replaceAllQueryParams({"a":"b", "c":"d"})) // 向 pie.dev 发起请求,添加GET请求参数a,值为b,添加GET请求参数c,值为d
#
定义replaceAllQueryParams(values map[string]string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceAllQueryParamsWithoutEscape#
详细描述replaceAllQueryParamsWithoutEscape 是一个请求选项参数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值
与 poc.replaceAllQueryParams 类似,但是不会将参数值进行转义
Example:
poc.Get("https://pie.dev/get", poc.replaceAllQueryParamsWithoutEscape({"a":"{{}}", "c":"%%"})) // 向 pie.dev 发起请求,添加GET请求参数a,值为{{}},添加GET请求参数c,值为%%
#
定义replaceAllQueryParamsWithoutEscape(values map[string]string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
values | map[string]string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceBasicAuth#
详细描述replaceBasicAuth 是一个请求选项参数,用于改变请求报文,修改 Authorization 请求头为基础认证的密文,如果不存在则会增加,实际上是replaceHeader("Authorization", codec.EncodeBase64(username + ":" + password))的简写
Example:
poc.Get("https://pie.dev/basic-auth/admin/password", poc.replaceBasicAuth("admin", "password")) // 向 pie.dev 发起请求进行基础认证,会得到200响应状态码
#
定义replaceBasicAuth(username string, password string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
username | string | |
password | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceBody#
详细描述replaceBody 是一个请求选项参数,用于改变请求报文,修改请求体内容,第一个参数为修改后的请求体内容,第二个参数为是否分块传输
Example:
poc.Post("https://pie.dev/post", poc.replaceBody("a=b", false)) // 向 pie.dev 发起请求,修改请求体内容为a=b
#
定义replaceBody(body []byte, chunk bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
body | []byte | |
chunk | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceCookie#
详细描述replaceCookie 是一个请求选项参数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加
Example:
poc.Get("https://pie.dev/get", poc.replaceCookie("aaa", "bbb")) // 向 pie.dev 发起请求,这里没有aaa的cookie值,所以会增加
#
定义replaceCookie(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceCookies#
详细描述replaceAllCookies 是一个请求选项参数,用于改变请求报文,修改所有Cookie请求头中的值
Example:
poc.Get("https://pie.dev/get", poc.replaceAllCookies({"aaa":"bbb", "ccc":"ddd"})) // 向 pie.dev 发起请求,修改aaa的cookie值为bbb,修改ccc的cookie值为ddd
#
定义replaceCookies(cookies any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
cookies | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceFirstLine#
详细描述replaceFirstLine 是一个请求选项参数,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本)
Example:
poc.Get("https://exmaple.com", poc.replaceFirstLine("GET /test HTTP/1.1")) // 向 example.com 发起请求,修改请求报文的第一行,请求/test路径
#
定义replaceFirstLine(firstLine string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
firstLine | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceFormEncoded#
详细描述replaceFormEncoded 是一个请求选项参数,用于改变请求报文,修改请求体中的表单,如果不存在则会增加
Example:
poc.Post("https://pie.dev/post", poc.replaceFormEncoded("aaa", "bbb")) // 向 pie.dev 发起请求,添加POST请求表单,其中aaa为键,bbb为值
#
定义replaceFormEncoded(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceHeader#
详细描述replaceHeader 是一个请求选项参数,用于改变请求报文,修改修改请求头,如果不存在则会增加
Example:
poc.Get("https://pie.dev/get", poc.replaceHeader("AAA", "BBB")) // 向 pie.dev 发起请求,修改AAA请求头的值为BBB,这里没有AAA请求头,所以会增加该请求头
#
定义replaceHeader(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceHost#
详细描述replaceHost 是一个请求选项参数,用于改变请求报文,修改Host请求头,如果不存在则会增加,实际上是replaceHeader("Host", host)的简写
Example:
poc.Get("https://yaklang.com/", poc.replaceHost("www.yaklang.com")) // 向 yaklang.com 发起请求,修改Host请求头的值为 www.yaklang.com
#
定义replaceHost(host string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
host | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceMethod#
详细描述replaceMethod 是一个请求选项参数,用于改变请求报文,修改请求方法
Example:
poc.Options("https://exmaple.com", poc.replaceMethod("GET")) // 向 example.com 发起请求,修改请求方法为GET
#
定义replaceMethod(method string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
method | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replacePath#
详细描述replacePath 是一个请求选项参数,用于改变请求报文,修改请求路径
Example:
poc.Get("https://pie.dev/post", poc.replacePath("/get")) // 向 pie.dev 发起请求,实际上请求路径为/get
#
定义replacePath(path string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
path | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replacePostParam#
详细描述replacePostParam 是一个请求选项参数,用于改变请求报文,修改 POST 请求参数,如果不存在则会增加
Example:
poc.Post("https://pie.dev/post", poc.replacePostParam("a", "b")) // 向 pie.dev 发起请求,添加POST请求参数a,值为b
#
定义replacePostParam(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceQueryParam#
详细描述replaceQueryParam 是一个请求选项参数,用于改变请求报文,修改 GET 请求参数,如果不存在则会增加
Example:
poc.Get("https://pie.dev/get", poc.replaceQueryParam("a", "b")) // 向 pie.dev 发起请求,添加GET请求参数a,值为b
#
定义replaceQueryParam(key string, value string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
key | string | |
value | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceRandomUserAgent#
详细描述replaceRandomUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头为随机的常见请求头
Example:
poc.Get("https://pie.dev/basic-auth/admin/password", poc.replaceRandomUserAgent()) // 向 pie.dev 发起请求,修改 User-Agent 请求头为随机的常见请求头
#
定义replaceRandomUserAgent() PocConfigOption
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceUploadFile#
详细描述replaceUploadFile 是一个请求选项参数,用于改变请求报文,修改请求体中的上传的文件,其中第一个参数为表单名,第二个参数为文件名,第三个参数为文件内容,第四个参数是可选参数,为文件类型(Content-Type),如果不存在则会增加
Example:
poc.Post("https://pie.dev/post", poc.replaceUploadFile("file", "phpinfo.php", "<?php phpinfo(); ?>", "application/x-php")) // 向 pie.dev 发起请求,添加POST请求上传文件,其中file为表单名,phpinfo.php为文件名,<?php phpinfo(); ?>为文件内容,application/x-php为文件类型
#
定义replaceUploadFile(formName string, fileName string, fileContent []byte, contentType ...string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
formName | string | |
fileName | string | |
fileContent | []byte | |
contentType | ...string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
replaceUserAgent#
详细描述replaceUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头,实际上是replaceHeader("User-Agent", userAgent)的简写
Example:
poc.Get("https://pie.dev/basic-auth/admin/password", poc.replaceUserAgent("yak-http-client")) // 向 pie.dev 发起请求,修改 User-Agent 请求头为 yak-http-client
#
定义replaceUserAgent(ua string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
ua | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
retryInStatusCode#
详细描述retryInStatusCode 是一个请求选项参数,用于指定在某些响应状态码的情况下重试,需要搭配 retryTimes 使用
Example:
poc.HTTP(poc.BasicRequest(), poc.retryTimes(5), poc.retryInStatusCode(500, 502)) // 向 example.com 发起请求,如果响应状态码500或502则进行重试,最多进行5次重试
#
定义retryInStatusCode(codes ...int) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
codes | ...int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
retryMaxWaitTime#
详细描述retryMaxWaitTime 是一个请求选项参数,用于指定重试时最大等待时间,需要搭配 retryTimes 使用,默认为2秒
Example:
poc.HTTP(poc.BasicRequest(), poc.retryTimes(5), poc.retryNotInStatusCode(200), poc.retryWaitTime(2)) // 向 example.com 发起请求,如果响应状态码不等于200则进行重试,最多进行5次重试,重试时最多等待2秒
#
定义retryMaxWaitTime(f float64) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
f | float64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
retryNotInStatusCode#
详细描述retryNotInStatusCode 是一个请求选项参数,用于指定非某些响应状态码的情况下重试,需要搭配 retryTimes 使用
Example:
poc.HTTP(poc.BasicRequest(), poc.retryTimes(5), poc.retryNotInStatusCode(200)) // 向 example.com 发起请求,如果响应状态码不等于200则进行重试,最多进行5次重试
#
定义retryNotInStatusCode(codes ...int) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
codes | ...int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
retryTimes#
详细描述retryTimes 是一个请求选项参数,用于指定请求失败时的重试次数,需要搭配 retryInStatusCode 或 retryNotInStatusCode 使用,来设置在什么响应码的情况下重试
Example:
poc.HTTP(poc.BasicRequest(), poc.retryTimes(5), poc.retryInStatusCode(500, 502)) // 向 example.com 发起请求,如果响应状态码500或502则进行重试,最多进行5次重试
#
定义retryTimes(t int) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
t | int |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
retryWaitTime#
详细描述retryWaitTime 是一个请求选项参数,用于指定重试时最小等待时间,需要搭配 retryTimes 使用,默认为0.1秒
Example:
poc.HTTP(poc.BasicRequest(), poc.retryTimes(5), poc.retryNotInStatusCode(200), poc.retryWaitTime(0.1)) // 向 example.com 发起请求,如果响应状态码不等于200则进行重试,最多进行5次重试,重试时最小等待0.1秒
#
定义retryWaitTime(f float64) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
f | float64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
save#
详细描述save 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,默认为true即会保存到数据库
Example:
poc.Get("https://exmaple.com", poc.save(true)) // 向 example.com 发起请求,会将此次请求保存到数据库中
#
定义save(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
saveHandler#
详细描述saveHandler 是一个请求选项参数,用于设置在将此次请求存入数据库之前的回调函数
Example:
poc.Get("https://exmaple.com", poc.save(func(resp){ resp.Tags = append(resp.Tags,"test") })) // 向 example.com 发起请求,添加test tag
#
定义saveHandler(f func(response *lowhttp.LowhttpResponse)) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
f | func(response *lowhttp.LowhttpResponse) |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
saveSync#
详细描述saveSync 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,且同步保存,默认为false即会异步保存到数据库
Example:
poc.Get("https://exmaple.com", poc.save(true), poc.saveSync(true)) // 向 example.com 发起请求,会将此次请求保存到数据库中,且同步保存
#
定义saveSync(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
session#
详细描述session 是一个请求选项参数,用于指定请求的session,参数可以是任意类型的值,用此值做标识符从而找到唯一的session。使用session进行请求时会自动管理cookie,这在登录后操作的场景非常有用
Example:
poc.Get("https://pie.dev/cookies/set/AAA/BBB", poc.session("test")) // 向 pie.dev 发起第一次请求,这会设置一个名为AAA,值为BBB的cookiersp, req, err = poc.Get("https://pie.dev/cookies", poc.session("test")) // 向 pie.dev 发起第二次请求,这个请求会输出所有的cookies,可以看到第一次请求设置的cookie已经存在了
#
定义session(i any) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | any |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
sni#
详细描述sni 是一个请求选项参数,用于指定使用 tls(https) 协议时的 服务器名称指示(SNI)
Example:
poc.Get("https://www.example.com", poc.sni("google.com"))
#
定义sni(sni string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
sni | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
source#
详细描述source 是一个请求选项参数,用于在请求记录保存到数据库时标识此次请求的来源
Example:
poc.Get("https://exmaple.com", poc.save(true), poc.source("test")) // 向 example.com 发起请求,会将此次请求保存到数据库中,指示此次请求的来源为test
#
定义source(i string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
i | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
timeout#
详细描述timeout 是一个请求选项参数,用于指定读取超时时间,默认为15秒
Example:
poc.Get("https://www.example.com", poc.timeout(15)) // 向 www.baidu.com 发起请求,读取超时时间为15秒
#
定义timeout(f float64) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
f | float64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
username#
详细描述username 是一个请求选项参数,用于指定认证时的用户名
Example:
poc.Get("https://www.example.com", poc.username("admin"), poc.password("admin"))
#
定义username(username string) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
username | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
websocket#
详细描述websocket 是一个请求选项参数,用于允许将链接升级为 websocket,此时发送的请求应该为 websocket 握手请求
Example:
rsp, req, err = poc.HTTP(`GET / HTTP/1.1Connection: UpgradeUpgrade: websocketSec-Websocket-Version: 13Sec-Websocket-Extensions: permessage-deflate; client_max_window_bitsHost: echo.websocket.eventsAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7Sec-Websocket-Key: L31R1As+71fwuXqhwhABuA==`,
poc.proxy("http://127.0.0.1:7890"), poc.websocketFromServer(func(rsp, cancel) { dump(rsp) }), poc.websocketOnClient(func(c) { c.WriteText("123") }), poc.websocket(true),
)time.Sleep(100)
#
定义websocket(w bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
w | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
websocketFromServer#
详细描述websocketFromServer 是一个请求选项参数,它接收一个回调函数,这个函数有两个参数,其中第一个参数为服务端发送的数据,第二个参数为取消函数,调用将会强制断开 websocket
Example:
rsp, req, err = poc.HTTP(`GET / HTTP/1.1Connection: UpgradeUpgrade: websocketSec-Websocket-Version: 13Sec-Websocket-Extensions: permessage-deflate; client_max_window_bitsHost: echo.websocket.eventsAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7Sec-Websocket-Key: L31R1As+71fwuXqhwhABuA==`,
poc.proxy("http://127.0.0.1:7890"), poc.websocketFromServer(func(rsp, cancel) { dump(rsp) }), poc.websocketOnClient(func(c) { c.WriteText("123") }), poc.websocket(true),
)time.Sleep(100)
#
定义websocketFromServer(w func(i []byte, cancel func())) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
w | func(i []byte, cancel func()) |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
websocketOnClient#
详细描述websocketOnClient 是一个请求选项参数,它接收一个回调函数,这个函数有一个参数,是WebsocketClient结构体,通过该结构体可以向服务端发送数据
Example:
rsp, req, err = poc.HTTP(`GET / HTTP/1.1Connection: UpgradeUpgrade: websocketSec-Websocket-Version: 13Sec-Websocket-Extensions: permessage-deflate; client_max_window_bitsHost: echo.websocket.eventsAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7Sec-Websocket-Key: L31R1As+71fwuXqhwhABuA==`,
poc.proxy("http://127.0.0.1:7890"), poc.websocketFromServer(func(rsp, cancel) { dump(rsp) }), poc.websocketOnClient(func(c) { c.WriteText("123") }), poc.websocket(true),
)time.Sleep(100)
#
定义websocketOnClient(w func(c *lowhttp.WebsocketClient)) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
w | func(c *lowhttp.WebsocketClient) |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |
#
websocketStrictMode#
详细描述websocketStrictMode 是一个请求选项参数,它用于控制是否启用严格模式,如果启用严格模式,则会遵循 RFC 6455 规范
Example:
rsp, req, err = poc.HTTP(`GET / HTTP/1.1Connection: UpgradeUpgrade: websocketSec-Websocket-Version: 13Sec-Websocket-Extensions: permessage-deflate; client_max_window_bitsHost: echo.websocket.eventsAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7Sec-Websocket-Key: L31R1As+71fwuXqhwhABuA==`,poc.proxy("http://127.0.0.1:7890"), poc.websocketStrictMode(true))
time.Sleep(100)
#
定义websocketStrictMode(b bool) PocConfigOption
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
b | bool |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | PocConfigOption |