Skip to main content

poc

函数名函数描述/介绍
.
.
poc.AppendHTTPPacketCookieAppendHTTPPacketCookie 是一个辅助函数,用于改变请求报文,添加Cookie请求头中的值
poc.AppendHTTPPacketFormEncodedAppendHTTPPacketFormEncoded 是一个辅助函数,用于改变请求报文,添加请求体中的表单
poc.AppendHTTPPacketHeaderAppendHTTPPacketHeader 是一个辅助函数,用于改变请求报文,添加请求头
poc.AppendHTTPPacketPathAppendHTTPPacketPath 是一个辅助函数,用于改变请求报文,在现有请求路径后添加请求路径
poc.AppendHTTPPacketPostParamAppendHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,添加POST请求参数
poc.AppendHTTPPacketQueryParamAppendHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,添加GET请求参数
poc.AppendHTTPPacketUploadFileAppendHTTPPacketUploadFile 是一个辅助函数,用于改变请求报文,添加请求体中的上传的文件,其中第一个参数为原始请求报文,第二个参数为表单名,第三个参数为文件名,第四个参数为文件内容,第五个参数是可选参数,为文件类型(Content-Type)
poc.BuildRequestBuildRequest 是一个用于辅助构建请求报文的工具函数,它第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,修改请求报文的选项将被作用,最后返回构建好的请求报文
poc.CurlToHTTPRequestCurlToHTTPRequest 尝试将curl命令转换为HTTP请求报文,其返回值为bytes,即转换后的HTTP请求报文
poc.DeleteDelete 向指定 URL 发送 DELETE 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看
poc.DeleteHTTPPacketCookieDeleteHTTPPacketCookie 是一个辅助函数,用于改变请求报文,删除Cookie中的值
poc.DeleteHTTPPacketFormDeleteHTTPPacketForm 是一个辅助函数,用于改变请求报文,删除POST请求表单
poc.DeleteHTTPPacketHeaderDeleteHTTPPacketHeader 是一个辅助函数,用于改变请求报文,删除请求头
poc.DeleteHTTPPacketPostParamDeleteHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,删除POST请求参数
poc.DeleteHTTPPacketQueryParamDeleteHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,删除GET请求参数
poc.DoDo 向指定 URL 发送指定请求方法的请求并且返回响应结构体,请求结构体以及错误,它的是第一个参数是请求方法,第二个参数 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看 ...
poc.ExtractPostParamsExtractPostParams 尝试将 HTTP 请求报文中的各种 POST 参数(普通格式,表单格式,JSON格式,XML格式)提取出来,返回提取出来的 POST 参数与错误
poc.FixHTTPPacketCRLFFixHTTPPacketCRLF 修复一个HTTP报文的CRLF问题(正常的报文每行末尾为\r\n,但是某些报文可能是有\n),如果noFixLength为true,则不会修复Content-Length,否则会尝试修复Content-Length
poc.FixHTTPRequestFixHTTPRequest 尝试对传入的HTTP请求报文进行修复,并返回修复后的请求
poc.FixHTTPResponseFixHTTPResponse 尝试对传入的 HTTP 响应报文进行修复,并返回修复后的响应
poc.GetGet 向指定 URL 发送 GET 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看
poc.GetAllHTTPPacketPostParamsGetAllHTTPPacketPostParams 是一个辅助函数,用于获取请求报文中的所有POST请求参数,其返回值为map[string]string,其中键为参数名,值为参数值
poc.GetAllHTTPPacketPostParamsFullGetAllHTTPPacketPostParamsFull 是一个辅助函数,用于获取请求报文中的所有POST请求参数,其返回值为map[string][]string,其中键为参数名,值为参数值切片
poc.GetAllHTTPPacketQueryParamsGetAllHTTPPacketQueryParams 是一个辅助函数,用于获取请求报文中的所有GET请求参数,其返回值为map[string]string,其中键为参数名,值为参数值
poc.GetAllHTTPPacketQueryParamsFullGetAllHTTPPacketQueryParamsFull 是一个辅助函数,用于获取请求报文中的所有GET请求参数,其返回值为map[string][]string,其中键为参数名,值为参数值切片
poc.GetHTTPPacketBodyGetHTTPPacketBody 是一个辅助函数,用于获取请求报文中的请求体,其返回值为bytes
poc.GetHTTPPacketContentTypeGetHTTPPacketContentType 是一个辅助函数,用于获取请求报文中的Content-Type请求头,其返回值为string
poc.GetHTTPPacketCookieGetHTTPPacketCookie 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为string
poc.GetHTTPPacketCookieFirstGetHTTPPacketCookieFirst 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为string
poc.GetHTTPPacketCookieValuesGetHTTPPacketCookieValues 是一个辅助函数,用于获取请求报文中Cookie值,其返回值为[]string,这是因为Cookie可能存在多个相同键名的值
poc.GetHTTPPacketCookiesGetHTTPPacketCookies 是一个辅助函数,用于获取请求报文中所有Cookie值,其返回值为map[string]string
poc.GetHTTPPacketCookiesFullGetHTTPPacketCookiesFull 是一个辅助函数,用于获取请求报文中所有Cookie值,其返回值为map[string][]string,这是因为Cookie可能存在多个相同键名的值
poc.GetHTTPPacketFirstLineGetHTTPPacketFirstLine 是一个辅助函数,用于获取 HTTP 报文中第一行的值,其返回值为string,string,string 在请求报文中,其三个返回值分别为:请求方法,请求URI,协议版本 在响应报文中,其三个返回值分别为:协议版本,状态码,状态码描述
poc.GetHTTPPacketHeaderGetHTTPPacketHeader 是一个辅助函数,用于获取请求报文中指定的请求头,其返回值为string
poc.GetHTTPPacketHeadersGetHTTPPacketHeaders 是一个辅助函数,用于获取请求报文中所有请求头,其返回值为map[string]string
poc.GetHTTPPacketHeadersFullGetHTTPPacketHeadersFull 是一个辅助函数,用于获取请求报文中所有请求头,其返回值为map[string][]string,这是因为请求头可能存在多个相同键名的值
poc.GetHTTPPacketPostParamGetHTTPPacketPostParam 是一个辅助函数,用于获取请求报文中指定的POST请求参数,其返回值为string
poc.GetHTTPPacketQueryParamGetHTTPPacketQueryParam 是一个辅助函数,用于获取请求报文中指定的GET请求参数,其返回值为string
poc.GetHTTPRequestMethodGetHTTPRequestMethod 是一个辅助函数,用于获取请求报文中的请求方法,其返回值为string
poc.GetHTTPRequestPathGetHTTPRequestPath 是一个辅助函数,用于获取响应报文中的路径,返回值是 string,包含 query
poc.GetHTTPRequestPathWithoutQueryGetHTTPRequestPathWithoutQuery 是一个辅助函数,用于获取响应报文中的路径,返回值是 string,不包含 query
poc.GetStatusCodeFromResponseGetStatusCodeFromResponse 是一个辅助函数,用于获取响应报文中的状态码,其返回值为int
poc.GetUrlFromHTTPRequestGetUrlFromHTTPRequest 是一个辅助函数,用于获取请求报文中的URL,其返回值为string
poc.HTTPHTTP 发送请求并且返回原始响应报文,原始请求报文以及错误,它的第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等
poc.HTTPExHTTPEx 与 HTTP 类似,它发送请求并且返回响应结构体,请求结构体以及错误,它的第一个参数可以接收 []byte, string, http.Request 结构体,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法...
poc.HTTPPacketForceChunkedHTTPPacketForceChunked 将一个HTTP报文的body强制转换为chunked编码
poc.HTTPRequestToCurlHTTPRequestToCurl 尝试将 HTTP 请求报文转换为curl命令。第一个参数为是否使用HTTPS,第二个参数为HTTP请求报文,其返回值为string,即转换后的curl命令
poc.HeadHead 向指定 URL 发送 HEAD 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看
poc.IsResponseIsResp 判断传入的数据是否为 HTTP 响应报文
poc.OptionsOptions 向指定 URL 发送 OPTIONS 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看
poc.ParseBytesToHTTPRequestParseBytesToHTTPRequest 将字节数组解析为 HTTP 请求
poc.ParseBytesToHTTPResponseParseBytesToHTTPResponse 将字节数组解析为 HTTP 响应
poc.ParseMultiPartFormWithCallbackParseMultiPartFormWithCallback 是一个辅助函数,用于尝试解析请求报文体中的表单并进行回调
poc.ParseUrlToHTTPRequestRawParseUrlToHTTPRequestRaw 将URL解析为原始 HTTP 请求报文,返回是否为 HTTPS,原始请求报文与错误
poc.PostPost 向指定 URL 发送 POST 请求并且返回响应结构体,请求结构体以及错误,它的第一个参数是 URL 字符串,接下来可以接收零个到多个请求选项,用于对此次请求进行配置,例如对设置超时时间,或者修改请求报文等 关于结构体中的可用字段和方法可以使用 desc 函数进行查看
poc.ReplaceAllHTTPPacketPostParamsReplaceAllHTTPPacketPostParams 是一个辅助函数,用于改变请求报文,修改所有 POST 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为 POST 请求参数名,value 为 POST 请求参数值
poc.ReplaceAllHTTPPacketPostParamsWithoutEscapeReplaceAllHTTPPacketPostParamsWithoutEscape 是一个辅助函数,用于改变请求报文,修改所有 POST 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为 POST 请求参数名,value 为 POST 请...
poc.ReplaceAllHTTPPacketQueryParamsReplaceAllHTTPPacketQueryParams 是一个辅助函数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值
poc.ReplaceAllHTTPPacketQueryParamsWithoutEscapeReplaceAllHTTPPacketQueryParamsWithoutEscape 是一个辅助函数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个 map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值 与 poc....
poc.ReplaceBodyReplaceBody 将原始 HTTP 请求报文中的 body 替换为指定的 body,并指定是否为 chunked,返回新的 HTTP 请求报文
poc.ReplaceHTTPPacketBasicAuthReplaceHTTPPacketBasicAuth 是一个辅助函数,用于改变请求报文,修改Authorization请求头为基础认证的密文,如果不存在则会增加,实际上是ReplaceHTTPPacketHeader("Authorization", codec.EncodeBase...
poc.ReplaceHTTPPacketBodyReplaceHTTPPacketBody 是一个辅助函数,用于改变 HTTP 报文,修改 HTTP 报文主体内容,第一个参数为原始 HTTP 报文,第二个参数为修改的报文主体内容
poc.ReplaceHTTPPacketCookieReplaceHTTPPacketCookie 是一个辅助函数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加
poc.ReplaceHTTPPacketCookiesReplaceHTTPPacketCookies 是一个辅助函数,用于改变请求报文,修改Cookie请求头
poc.ReplaceHTTPPacketFirstLineReplaceHTTPPacketFirstLine 是一个辅助,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本)
poc.ReplaceHTTPPacketFormEncodedReplaceHTTPPacketFormEncoded 是一个辅助函数,用于改变请求报文,替换请求体中的表单,如果不存在则会增加
poc.ReplaceHTTPPacketHeaderReplaceHTTPPacketHeader 是一个辅助函数,用于改变请求报文,修改请求头,如果不存在则会增加
poc.ReplaceHTTPPacketHostReplaceHTTPPacketHost 是一个辅助函数,用于改变请求报文,修改Host请求头,如果不存在则会增加,实际上是ReplaceHTTPPacketHeader("Host", host)的简写
poc.ReplaceHTTPPacketJsonBodyReplaceHTTPPacketJsonBody 是一个辅助函数,用于改变 HTTP 报文,修改 HTTP 报文主体内容( json 格式),第一个参数为原始 HTTP 报文,第二个参数为修改的报文主体内容( map 对象)
poc.ReplaceHTTPPacketMethodReplaceHTTPPacketMethod 是一个辅助函数,用于改变请求报文,修改请求方法
poc.ReplaceHTTPPacketPathReplaceHTTPPacketPath 是一个辅助函数,用于改变请求报文,修改请求路径
poc.ReplaceHTTPPacketPostParamReplaceHTTPPacketPostParam 是一个辅助函数,用于改变请求报文,修改POST请求参数,如果不存在则会增加
poc.ReplaceHTTPPacketQueryParamReplaceHTTPPacketQueryParam 是一个辅助函数,用于改变请求报文,修改GET请求参数,如果不存在则会增加
poc.ReplaceHTTPPacketUploadFileReplaceHTTPPacketUploadFile 是一个辅助函数,用于改变请求报文,替换请求体中的上传的文件,其中第一个参数为原始请求报文,第二个参数为表单名,第三个参数为文件名,第四个参数为文件内容,第五个参数是可选参数,为文件类型(Content-Type),如果表单名不存在则会增加
poc.SplitSplit 切割 HTTP 报文,返回响应头和响应体,其第一个参数是原始HTTP报文,接下来可以接收零个到多个回调函数,其在每次解析到请求头时回调
poc.WebsocketWebsocket 实际上等价于poc.HTTP(..., poc.websocket(true)),用于快速发送请求并建立websocket连接并且返回原始响应报文,原始请求报文以及错误
poc.appendCookieappendCookie 是一个请求选项参数,用于改变请求报文,添加 Cookie 请求头中的值
poc.appendFormEncodedappendFormEncoded 是一个请求选项参数,用于改变请求报文,添加请求体中的表单
poc.appendHeaderappendHeader 是一个请求选项参数,用于改变请求报文,添加请求头
poc.appendHeadersappendHeaders 是一个请求选项参数,用于改变请求报文,添加请求头
poc.appendPathappendPath 是一个请求选项参数,用于改变请求报文,在现有请求路径后添加请求路径
poc.appendPostParamappendPostParam 是一个请求选项参数,用于改变请求报文,添加 POST 请求参数
poc.appendQueryParamappendQueryParam 是一个请求选项参数,用于改变请求报文,添加 GET 请求参数
poc.appendUploadFileappendUploadFile 是一个请求选项参数,用于改变请求报文,添加请求体中的上传的文件,其中第一个参数为表单名,第二个参数为文件名,第三个参数为文件内容,第四个参数是可选参数,为文件类型(Content-Type)
poc.bodybody 是一个请求选项参数,用于指定请求的 body,需要传入一个任意类型的参数,如果不是 string 或者 bytes 会抛出日志并忽略。
poc.connPoolconnPool 是一个请求选项参数,用于指定是否使用连接池,默认不使用连接池
poc.connectTimeoutconnectTimeout 是一个请求选项参数,用于指定连接超时时间,默认为15秒
poc.contextcontext 是一个请求选项参数,用于指定请求的上下文
poc.deleteCookiedeleteCookie 是一个请求选项参数,用于改变请求报文,删除 Cookie 中的值
poc.deleteFormdeleteForm 是一个请求选项参数,用于改变请求报文,删除 POST 请求表单
poc.deleteHeaderdeleteHeader 是一个请求选项参数,用于改变请求报文,删除请求头
poc.deletePostParamdeletePostParam 是一个请求选项参数,用于改变请求报文,删除 POST 请求参数
poc.deleteQueryParamdeleteQueryParam 是一个请求选项参数,用于改变请求报文,删除 GET 请求参数
poc.dnsNoCachednsNoCache 是一个请求选项参数,用于指定请求时不使用DNS缓存,默认使用DNS缓存
poc.dnsServerdnsServer 是一个请求选项参数,用于指定请求所使用的DNS服务器,默认使用系统自带的DNS服务器
poc.hosthost 是一个请求选项参数,用于指定实际请求的 host,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的host
poc.http2http2 是一个请求选项参数,用于指定是否使用 http2 协议,默认为 false 即使用http1协议
poc.httpshttps 是一个请求选项参数,用于指定是否使用 https 协议,默认为 false 即使用 http 协议
poc.jsRedirectjsRedirect 是一个请求选项参数,用于指定是否跟踪JS重定向,默认为false即不会自动跟踪JS重定向
poc.jsonjson 是一个请求选项参数,用于指定请求的 body 为 json 格式,需要传入一个任意类型的参数,会自动转换为 json 格式
poc.noFixContentLengthnoFixContentLength 是一个请求选项参数,用于指定是否修复响应报文中的 Content-Length 字段,默认为 false 即会自动修复Content-Length字段
poc.noRedirectnoRedirect 是一个请求选项参数,用于指定是否跟踪重定向,默认为 false 即会自动跟踪重定向
poc.paramsparams 是一个请求选项参数,用于在请求时使用传入的值,需要注意的是,它可以很方便地使用 str.f()或 f-string 代替
poc.passwordpassword 是一个请求选项参数,用于指定认证时的密码
poc.portport 是一个请求选项参数,用于指定实际请求的端口,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的端口
poc.postDatapostData 是一个请求选项参数,用于指定请求的 body 为 post 数据,需要传入一个任意类型的参数,会自动转换为 post 数据 输入是原始字符串,不会修改 Content-Type
poc.postParamspostParams 是一个请求选项参数,用于指定请求的 body 为 post 数据,需要传入一个任意类型的参数,会自动转换为 post 数据 输入是 map 类型,会自动转换为 post 数据,同时会自动设置 Content-Type 为 application/x-www-form-urle...
poc.proxyproxy 是一个请求选项参数,用于指定请求使用的代理,可以指定多个代理,默认会使用系统代理
poc.queryquery 是一个请求选项参数,用于指定请求的 query 参数,需要传入一个任意类型的参数,会自动转换为 query 参数 如果输入的是 map 类型,则会自动转换为 query 参数,例如:{"a": "b"} 转换为 a=b 如果输入的是其他,会把字符串结果...
poc.randomJA3
poc.redirectHandlerredirectHandler 是一个请求选项参数,用于作为重定向处理函数,如果设置了该选项,则会在重定向时调用该函数,如果该函数返回 true,则会继续重定向,否则不会重定向。其第一个参数为是否使用 https 协议,第二个参数为原始请求报文,第三个参数为原始响应报文
poc.redirectTimesredirectTimes 是一个请求选项参数,用于指定最大重定向次数,默认为5次
poc.replaceAllPostParamsreplaceAllPostParams 是一个请求选项参数,用于改变请求报文,修改所有POST请求参数,如果不存在则会增加,其接收一个map[string]string类型的参数,其中key为POST请求参数名,value为POST请求参数值
poc.replaceAllPostParamsWithoutEscapereplaceAllPostParamsWithoutEscape 是一个请求选项参数,用于改变请求报文,修改所有POST请求参数,如果不存在则会增加,其接收一个map[string]string类型的参数,其中key为POST请求参数名,value为POST请求参数值 与 poc.replace...
poc.replaceAllQueryParamsreplaceAllQueryParams 是一个请求选项参数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值
poc.replaceAllQueryParamsWithoutEscapereplaceAllQueryParamsWithoutEscape 是一个请求选项参数,用于改变请求报文,修改所有 GET 请求参数,如果不存在则会增加,其接收一个map[string]string 类型的参数,其中 key 为请求参数名,value 为请求参数值 与 poc.replaceAl...
poc.replaceBasicAuthreplaceBasicAuth 是一个请求选项参数,用于改变请求报文,修改 Authorization 请求头为基础认证的密文,如果不存在则会增加,实际上是replaceHeader("Authorization", codec.EncodeBase64(username + &#...
poc.replaceBodyreplaceBody 是一个请求选项参数,用于改变请求报文,修改请求体内容,第一个参数为修改后的请求体内容,第二个参数为是否分块传输
poc.replaceCookiereplaceCookie 是一个请求选项参数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加
poc.replaceCookiesreplaceAllCookies 是一个请求选项参数,用于改变请求报文,修改所有Cookie请求头中的值
poc.replaceFirstLinereplaceFirstLine 是一个请求选项参数,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本)
poc.replaceFormEncodedreplaceFormEncoded 是一个请求选项参数,用于改变请求报文,修改请求体中的表单,如果不存在则会增加
poc.replaceHeaderreplaceHeader 是一个请求选项参数,用于改变请求报文,修改修改请求头,如果不存在则会增加
poc.replaceHostreplaceHost 是一个请求选项参数,用于改变请求报文,修改Host请求头,如果不存在则会增加,实际上是replaceHeader("Host", host)的简写
poc.replaceMethodreplaceMethod 是一个请求选项参数,用于改变请求报文,修改请求方法
poc.replacePathreplacePath 是一个请求选项参数,用于改变请求报文,修改请求路径
poc.replacePostParamreplacePostParam 是一个请求选项参数,用于改变请求报文,修改 POST 请求参数,如果不存在则会增加
poc.replaceQueryParamreplaceQueryParam 是一个请求选项参数,用于改变请求报文,修改 GET 请求参数,如果不存在则会增加
poc.replaceRandomUserAgentreplaceRandomUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头为随机的常见请求头
poc.replaceUploadFilereplaceUploadFile 是一个请求选项参数,用于改变请求报文,修改请求体中的上传的文件,其中第一个参数为表单名,第二个参数为文件名,第三个参数为文件内容,第四个参数是可选参数,为文件类型(Content-Type),如果不存在则会增加
poc.replaceUserAgentreplaceUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头,实际上是replaceHeader("User-Agent", userAgent)的简写
poc.retryInStatusCoderetryInStatusCode 是一个请求选项参数,用于指定在某些响应状态码的情况下重试,需要搭配 retryTimes 使用
poc.retryMaxWaitTimeretryMaxWaitTime 是一个请求选项参数,用于指定重试时最大等待时间,需要搭配 retryTimes 使用,默认为2秒
poc.retryNotInStatusCoderetryNotInStatusCode 是一个请求选项参数,用于指定非某些响应状态码的情况下重试,需要搭配 retryTimes 使用
poc.retryTimesretryTimes 是一个请求选项参数,用于指定请求失败时的重试次数,需要搭配 retryInStatusCode 或 retryNotInStatusCode 使用,来设置在什么响应码的情况下重试
poc.retryWaitTimeretryWaitTime 是一个请求选项参数,用于指定重试时最小等待时间,需要搭配 retryTimes 使用,默认为0.1秒
poc.savesave 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,默认为true即会保存到数据库
poc.saveHandlersaveHandler 是一个请求选项参数,用于设置在将此次请求存入数据库之前的回调函数
poc.saveSyncsaveSync 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,且同步保存,默认为false即会异步保存到数据库
poc.sessionsession 是一个请求选项参数,用于指定请求的session,参数可以是任意类型的值,用此值做标识符从而找到唯一的session。使用session进行请求时会自动管理cookie,这在登录后操作的场景非常有用
poc.snisni 是一个请求选项参数,用于指定使用 tls(https) 协议时的 服务器名称指示(SNI)
poc.sourcesource 是一个请求选项参数,用于在请求记录保存到数据库时标识此次请求的来源
poc.timeouttimeout 是一个请求选项参数,用于指定读取超时时间,默认为15秒
poc.usernameusername 是一个请求选项参数,用于指定认证时的用户名
poc.websocketwebsocket 是一个请求选项参数,用于允许将链接升级为 websocket,此时发送的请求应该为 websocket 握手请求
poc.websocketFromServerwebsocketFromServer 是一个请求选项参数,它接收一个回调函数,这个函数有两个参数,其中第一个参数为服务端发送的数据,第二个参数为取消函数,调用将会强制断开 websocket
poc.websocketOnClientwebsocketOnClient 是一个请求选项参数,它接收一个回调函数,这个函数有一个参数,是WebsocketClient结构体,通过该结构体可以向服务端发送数据
poc.websocketStrictModewebsocketStrictMode 是一个请求选项参数,它用于控制是否启用严格模式,如果启用严格模式,则会遵循 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
keystring
valueany

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte

AppendHTTPPacketHeader#

详细描述#

AppendHTTPPacketHeader 是一个辅助函数,用于改变请求报文,添加请求头

Example:

poc.AppendHTTPPacketHeader(poc.BasicRequest(), "AAA", "BBB") // 添加AAA请求头的值为BBB

定义#

AppendHTTPPacketHeader(packet []byte, headerKey string, headerValue any) []byte

参数#

参数名参数类型参数解释
packet[]byte
headerKeystring
headerValueany

返回值#

返回值(顺序)返回值类型返回值解释
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
pstring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
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
fieldNamestring
fileNamestring
fileContentany
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

参数#

参数名参数类型参数解释
iany
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)

参数#

参数名参数类型参数解释
commandstring

返回值#

返回值(顺序)返回值类型返回值解释
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)

参数#

参数名参数类型参数解释
urlStrstring
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
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
headerKeystring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
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)

参数#

参数名参数类型参数解释
methodstring
urlStrstring
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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

返回值#

返回值(顺序)返回值类型返回值解释
r1map[string]string
r2error

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
noFixLengthbool

返回值#

返回值(顺序)返回值类型返回值解释
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)

参数#

参数名参数类型参数解释
urlStrstring
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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

返回值#

返回值(顺序)返回值类型返回值解释
paramsmap[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

返回值#

返回值(顺序)返回值类型返回值解释
paramsmap[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

返回值#

返回值(顺序)返回值类型返回值解释
paramsmap[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

返回值#

返回值(顺序)返回值类型返回值解释
paramsmap[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

返回值#

返回值(顺序)返回值类型返回值解释
contentTypestring

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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
cookieValuestring

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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
cookieValuestring

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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
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

返回值#

返回值(顺序)返回值类型返回值解释
cookiesmap[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

返回值#

返回值(顺序)返回值类型返回值解释
cookiesmap[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

返回值#

返回值(顺序)返回值类型返回值解释
r1string
r2string
r3string

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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
headerstring

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

返回值#

返回值(顺序)返回值类型返回值解释
headersmap[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

返回值#

返回值(顺序)返回值类型返回值解释
headersmap[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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
paramValuestring

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
keystring

返回值#

返回值(顺序)返回值类型返回值解释
paramValuestring

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

返回值#

返回值(顺序)返回值类型返回值解释
methodstring

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

返回值#

返回值(顺序)返回值类型返回值解释
pathstring

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

返回值#

返回值(顺序)返回值类型返回值解释
pathstring

GetStatusCodeFromResponse#

详细描述#

GetStatusCodeFromResponse 是一个辅助函数,用于获取响应报文中的状态码,其返回值为int

Example:

poc.GetStatusCodeFromResponse(`HTTP/1.1 200 OKContent-Length: 5
hello`) // 获取响应报文中的状态码,这里会返回200

定义#

GetStatusCodeFromResponse(packet []byte) (statusCode int)

参数#

参数名参数类型参数解释
packet[]byte

返回值#

返回值(顺序)返回值类型返回值解释
statusCodeint

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)

参数#

参数名参数类型参数解释
schemestring
packet[]byte

返回值#

返回值(顺序)返回值类型返回值解释
urlstring

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)

参数#

参数名参数类型参数解释
iany
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rsp[]byte
req[]byte
errerror

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)

参数#

参数名参数类型参数解释
iany
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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)

参数#

参数名参数类型参数解释
httpsbool
rawany

返回值#

返回值(顺序)返回值类型返回值解释
curlCommandstring

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)

参数#

参数名参数类型参数解释
urlStrstring
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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)

参数#

参数名参数类型参数解释
rawany

返回值#

返回值(顺序)返回值类型返回值解释
isHTTPResponsebool

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)

参数#

参数名参数类型参数解释
urlStrstring
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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
errerror

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
errerror

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
callbackfunc(part *multipart.Part)

返回值#

返回值(顺序)返回值类型返回值解释
errerror

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)

参数#

参数名参数类型参数解释
methodstring
iany

返回值#

返回值(顺序)返回值类型返回值解释
isHttpsbool
req[]byte
errerror

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)

参数#

参数名参数类型参数解释
urlStrstring
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*lowhttp.LowhttpResponse
reqInst*http.Request
errerror

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
valuesmap[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
valuesmap[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
valuesmap[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
valuesmap[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
chunkbool

返回值#

返回值(顺序)返回值类型返回值解释
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
usernamestring
passwordstring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valueany

返回值#

返回值(顺序)返回值类型返回值解释
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
many

返回值#

返回值(顺序)返回值类型返回值解释
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
firstLinestring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte

ReplaceHTTPPacketHeader#

详细描述#

ReplaceHTTPPacketHeader 是一个辅助函数,用于改变请求报文,修改请求头,如果不存在则会增加

Example:

poc.ReplaceHTTPPacketHeader(poc.BasicRequest(),"AAA", "BBB") // 修改AAA请求头的值为BBB,这里没有AAA请求头,所以会增加该请求头

定义#

ReplaceHTTPPacketHeader(packet []byte, headerKey string, headerValue any) []byte

参数#

参数名参数类型参数解释
packet[]byte
headerKeystring
headerValueany

返回值#

返回值(顺序)返回值类型返回值解释
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
hoststring

返回值#

返回值(顺序)返回值类型返回值解释
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
jsonMapmap[string]any

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte

ReplaceHTTPPacketMethod#

详细描述#

ReplaceHTTPPacketMethod 是一个辅助函数,用于改变请求报文,修改请求方法

Example:

poc.ReplaceHTTPPacketMethod(poc.BasicRequest(), "OPTIONS") // 修改请求方法为OPTIONS

定义#

ReplaceHTTPPacketMethod(packet []byte, newMethod string) []byte

参数#

参数名参数类型参数解释
packet[]byte
newMethodstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte

ReplaceHTTPPacketPath#

详细描述#

ReplaceHTTPPacketPath 是一个辅助函数,用于改变请求报文,修改请求路径

Example:

poc.ReplaceHTTPPacketPath(poc.BasicRequest(), "/get") // 修改请求路径为/get

定义#

ReplaceHTTPPacketPath(packet []byte, p string) []byte

参数#

参数名参数类型参数解释
packet[]byte
pstring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
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
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
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
fieldNamestring
fileNamestring
fileContentany
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)

返回值#

返回值(顺序)返回值类型返回值解释
headersstring
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)

参数#

参数名参数类型参数解释
rawany
opts...PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
rsp[]byte
req[]byte
errerror

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

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

appendFormEncoded#

详细描述#

appendFormEncoded 是一个请求选项参数,用于改变请求报文,添加请求体中的表单

Example:

poc.Post("https://pie.dev/post", poc.appendFormEncoded("aaa", "bbb")) // 向 pie.dev 发起请求,添加POST请求表单,其中aaa为键,bbb为值

定义#

appendFormEncoded(key string, value string) PocConfigOption

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

appendHeader#

详细描述#

appendHeader 是一个请求选项参数,用于改变请求报文,添加请求头

Example:

poc.Post("https://pie.dev/post", poc.appendHeader("AAA", "BBB")) // 向 pie.dev 发起请求,添加AAA请求头的值为BBB

定义#

appendHeader(key string, value string) PocConfigOption

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
headersmap[string]string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

appendPath#

详细描述#

appendPath 是一个请求选项参数,用于改变请求报文,在现有请求路径后添加请求路径

Example:

poc.Get("https://yaklang.com/docs", poc.appendPath("/api/poc")) // 向 yaklang.com 发起请求,实际上请求路径为/docs/api/poc

定义#

appendPath(path string) PocConfigOption

参数#

参数名参数类型参数解释
pathstring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
fieldNamestring
fileNamestring
fileContentany
contentType...string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

connectTimeout#

详细描述#

connectTimeout 是一个请求选项参数,用于指定连接超时时间,默认为15秒

Example:

poc.Get("https://www.example.com", poc.timeout(15)) // 向 www.baidu.com 发起请求,读取超时时间为15秒

定义#

connectTimeout(f float64) PocConfigOption

参数#

参数名参数类型参数解释
ffloat64

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

context#

详细描述#

context 是一个请求选项参数,用于指定请求的上下文

Example:

ctx = context.New()poc.Get("https://exmaple.com", poc.withContext(ctx)) // 向 example.com 发起请求,使用指定的上下文

定义#

context(ctx context.Context) PocConfigOption

参数#

参数名参数类型参数解释
ctxcontext.Context

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

dnsNoCache#

详细描述#

dnsNoCache 是一个请求选项参数,用于指定请求时不使用DNS缓存,默认使用DNS缓存

Example:

// 向 example.com 发起请求,不使用DNS缓存poc.Get("https://exmaple.com", poc.dnsNoCache(true))

定义#

dnsNoCache(b bool) PocConfigOption

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

host#

详细描述#

host 是一个请求选项参数,用于指定实际请求的 host,如果没有设置该请求选项,则会依据原始请求报文中的Host字段来确定实际请求的host

Example:

poc.HTTP(poc.BasicRequest(), poc.host("yaklang.com")) // 实际上请求 yaklang.com

定义#

host(h string) PocConfigOption

参数#

参数名参数类型参数解释
hstring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
isHttp2bool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

https#

详细描述#

https 是一个请求选项参数,用于指定是否使用 https 协议,默认为 false 即使用 http 协议

Example:

poc.HTTP(poc.BasicRequest(), poc.https(true)) // 向 example.com 发起请求,使用 https 协议

定义#

https(isHttps bool) PocConfigOption

参数#

参数名参数类型参数解释
isHttpsbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

noFixContentLength#

详细描述#

noFixContentLength 是一个请求选项参数,用于指定是否修复响应报文中的 Content-Length 字段,默认为 false 即会自动修复Content-Length字段

Example:

poc.HTTP(poc.BasicRequest(), poc.noFixContentLength()) // 向 example.com 发起请求,如果响应报文中的Content-Length字段不正确或不存在    也不会自动修复

定义#

noFixContentLength(b bool) PocConfigOption

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

noRedirect#

详细描述#

noRedirect 是一个请求选项参数,用于指定是否跟踪重定向,默认为 false 即会自动跟踪重定向

Example:

poc.HTTP(poc.BasicRequest(), poc.noRedirect()) // 向 example.com 发起请求,如果响应重定向到其他链接也不会自动跟踪重定向

定义#

noRedirect(b bool) PocConfigOption

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

password#

详细描述#

password 是一个请求选项参数,用于指定认证时的密码

Example:

poc.Get("https://www.example.com", poc.username("admin"), poc.password("admin"))

定义#

password(password string) PocConfigOption

参数#

参数名参数类型参数解释
passwordstring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
portint

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
istring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

randomJA3#

详细描述#

定义#

randomJA3(b bool) PocConfigOption

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
ifunc(isHttps bool, req, rsp []byte) bool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

redirectTimes#

详细描述#

redirectTimes 是一个请求选项参数,用于指定最大重定向次数,默认为5次

Example:

poc.HTTP(poc.BasicRequest(), poc.redirectTimes(5)) // 向 example.com 发起请求,如果响应重定向到其他链接,则会自动跟踪重定向最多5次

定义#

redirectTimes(t int) PocConfigOption

参数#

参数名参数类型参数解释
tint

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
valuesmap[string]string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
valuesmap[string]string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
valuesmap[string]string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
valuesmap[string]string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
usernamestring
passwordstring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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
chunkbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replaceCookie#

详细描述#

replaceCookie 是一个请求选项参数,用于改变请求报文,修改Cookie请求头中的值,如果不存在则会增加

Example:

poc.Get("https://pie.dev/get", poc.replaceCookie("aaa", "bbb")) // 向 pie.dev 发起请求,这里没有aaa的cookie值,所以会增加

定义#

replaceCookie(key string, value string) PocConfigOption

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
cookiesany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replaceFirstLine#

详细描述#

replaceFirstLine 是一个请求选项参数,用于改变请求报文,修改第一行(即请求方法,请求路径,协议版本)

Example:

poc.Get("https://exmaple.com", poc.replaceFirstLine("GET /test HTTP/1.1")) // 向 example.com 发起请求,修改请求报文的第一行,请求/test路径

定义#

replaceFirstLine(firstLine string) PocConfigOption

参数#

参数名参数类型参数解释
firstLinestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replaceFormEncoded#

详细描述#

replaceFormEncoded 是一个请求选项参数,用于改变请求报文,修改请求体中的表单,如果不存在则会增加

Example:

poc.Post("https://pie.dev/post", poc.replaceFormEncoded("aaa", "bbb")) // 向 pie.dev 发起请求,添加POST请求表单,其中aaa为键,bbb为值

定义#

replaceFormEncoded(key string, value string) PocConfigOption

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replaceHeader#

详细描述#

replaceHeader 是一个请求选项参数,用于改变请求报文,修改修改请求头,如果不存在则会增加

Example:

poc.Get("https://pie.dev/get", poc.replaceHeader("AAA", "BBB")) // 向 pie.dev 发起请求,修改AAA请求头的值为BBB,这里没有AAA请求头,所以会增加该请求头

定义#

replaceHeader(key string, value string) PocConfigOption

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
hoststring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replaceMethod#

详细描述#

replaceMethod 是一个请求选项参数,用于改变请求报文,修改请求方法

Example:

poc.Options("https://exmaple.com", poc.replaceMethod("GET")) // 向 example.com 发起请求,修改请求方法为GET

定义#

replaceMethod(method string) PocConfigOption

参数#

参数名参数类型参数解释
methodstring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replacePath#

详细描述#

replacePath 是一个请求选项参数,用于改变请求报文,修改请求路径

Example:

poc.Get("https://pie.dev/post", poc.replacePath("/get")) // 向 pie.dev 发起请求,实际上请求路径为/get

定义#

replacePath(path string) PocConfigOption

参数#

参数名参数类型参数解释
pathstring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

replaceRandomUserAgent#

详细描述#

replaceRandomUserAgent 是一个请求选项参数,用于改变请求报文,修改 User-Agent 请求头为随机的常见请求头

Example:

poc.Get("https://pie.dev/basic-auth/admin/password", poc.replaceRandomUserAgent()) // 向 pie.dev 发起请求,修改 User-Agent 请求头为随机的常见请求头

定义#

replaceRandomUserAgent() PocConfigOption

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
formNamestring
fileNamestring
fileContent[]byte
contentType...string

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
uastring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
ffloat64

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

retryNotInStatusCode#

详细描述#

retryNotInStatusCode 是一个请求选项参数,用于指定非某些响应状态码的情况下重试,需要搭配 retryTimes 使用

Example:

poc.HTTP(poc.BasicRequest(), poc.retryTimes(5), poc.retryNotInStatusCode(200)) // 向 example.com 发起请求,如果响应状态码不等于200则进行重试,最多进行5次重试

定义#

retryNotInStatusCode(codes ...int) PocConfigOption

参数#

参数名参数类型参数解释
codes...int

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
tint

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
ffloat64

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

save#

详细描述#

save 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,默认为true即会保存到数据库

Example:

poc.Get("https://exmaple.com", poc.save(true)) // 向 example.com 发起请求,会将此次请求保存到数据库中

定义#

save(b bool) PocConfigOption

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
ffunc(response *lowhttp.LowhttpResponse)

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

saveSync#

详细描述#

saveSync 是一个请求选项参数,用于指定是否将此次请求的记录保存在数据库中,且同步保存,默认为false即会异步保存到数据库

Example:

poc.Get("https://exmaple.com", poc.save(true), poc.saveSync(true)) // 向 example.com 发起请求,会将此次请求保存到数据库中,且同步保存

定义#

saveSync(b bool) PocConfigOption

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

sni#

详细描述#

sni 是一个请求选项参数,用于指定使用 tls(https) 协议时的 服务器名称指示(SNI)

Example:

poc.Get("https://www.example.com", poc.sni("google.com"))

定义#

sni(sni string) PocConfigOption

参数#

参数名参数类型参数解释
snistring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

source#

详细描述#

source 是一个请求选项参数,用于在请求记录保存到数据库时标识此次请求的来源

Example:

poc.Get("https://exmaple.com", poc.save(true), poc.source("test")) // 向 example.com 发起请求,会将此次请求保存到数据库中,指示此次请求的来源为test

定义#

source(i string) PocConfigOption

参数#

参数名参数类型参数解释
istring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

timeout#

详细描述#

timeout 是一个请求选项参数,用于指定读取超时时间,默认为15秒

Example:

poc.Get("https://www.example.com", poc.timeout(15)) // 向 www.baidu.com 发起请求,读取超时时间为15秒

定义#

timeout(f float64) PocConfigOption

参数#

参数名参数类型参数解释
ffloat64

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

username#

详细描述#

username 是一个请求选项参数,用于指定认证时的用户名

Example:

poc.Get("https://www.example.com", poc.username("admin"), poc.password("admin"))

定义#

username(username string) PocConfigOption

参数#

参数名参数类型参数解释
usernamestring

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
wbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
wfunc(i []byte, cancel func())

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
wfunc(c *lowhttp.WebsocketClient)

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption

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

参数#

参数名参数类型参数解释
bbool

返回值#

返回值(顺序)返回值类型返回值解释
r1PocConfigOption