Documentation
¶
Index ¶
- func BuildAuthHeaders(headers map[string]string, cookies map[string]string) map[string][]string
- func CreateBodyFromBytes(contentType string, bodyData []byte) *common.Body
- func CreateBodyFromDetectedBytes(bodyData []byte) *common.Body
- func CreateHTTPResponse(statusCode int, redirectChain []string, headers map[string][]string, ...) common.HttpResponse
- func CreateHTTPResponseFromBytes(statusCode int, redirectChain []string, headers map[string][]string, ...) common.HttpResponse
- func DetectContentTypeFromBytes(bodyData []byte) string
- func FlattenHeaders(headers map[string][]string) map[string]string
- func GetContentTypeFromHeaderMap(headers map[string][]string) string
- func GetHeaderValueFromHeaderMap(headers map[string][]string, name string) *string
- func GetResponseBodyStringFromBodyStruct(body *common.Body) *string
- func GetUserAgentFlag(cmd *cobra.Command) (common.UserAgentPreset, error)
- func IsDetectedBinaryBody(bodyData []byte) bool
- func ParseFormDataPairs(pairs []string) map[string]string
- func ParseHeaderPairs(pairs []string) map[string]string
- func RemoveScheme(url string) string
- func SplitTargetURL(target string) (string, string, map[string]string, error)
- func UnwrapURLError(err error) error
- func ValidateUserAgentWithRequestMethod(userAgent common.UserAgentPreset, requestMethod common.RequestMethod, ...) error
- type MethodFlagData
- type TransportErrorCategory
- type TransportErrorDetail
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildAuthHeaders ¶ added in v0.0.263
BuildAuthHeaders merges explicit request headers and cookies into a single multi-value header map suitable for HttpRequestParams. Cookies are folded into a single "Cookie" header so the standard transport forwards them; the headless transport additionally seeds the cookie jar from the same cookie map. Returns nil when neither headers nor cookies are supplied.
func CreateBodyFromBytes ¶ added in v0.0.141
CreateBodyFromBytes creates a Body struct based on content type and body data as bytes
func CreateBodyFromDetectedBytes ¶ added in v0.0.245
CreateBodyFromDetectedBytes classifies body bytes using Go's content sniffing.
func CreateHTTPResponse ¶
func CreateHTTPResponse(statusCode int, redirectChain []string, headers map[string][]string, responseBody string) common.HttpResponse
CreateHTTPResponse creates an HttpResponse struct from HttpResponse data (string version) This is a compatibility wrapper that converts string to bytes
func CreateHTTPResponseFromBytes ¶ added in v0.0.141
func CreateHTTPResponseFromBytes(statusCode int, redirectChain []string, headers map[string][]string, responseBody []byte) common.HttpResponse
CreateHTTPResponseFromBytes creates an HttpResponse struct from HttpResponse data using byte array
func DetectContentTypeFromBytes ¶ added in v0.0.245
DetectContentTypeFromBytes classifies body bytes using Go's content sniffing.
func FlattenHeaders ¶ added in v0.0.246
FlattenHeaders converts a multi-value header map (map[string][]string) into a single-value header map (map[string]string) by joining multiple values with a comma. This is the format expected by SendHTTPRequest. Ranging over a nil map is safe in Go so the caller does not need to nil-check before calling.
func GetContentTypeFromHeaderMap ¶ added in v0.0.259
func GetHeaderValueFromHeaderMap ¶
GetHeaderValueFromHeaderMap extracts a single header value from response header map. Returns the first value found for the given header name, or nil if not found.
func GetResponseBodyStringFromBodyStruct ¶
GetResponseBodyStringFromBodyStruct extracts string content from a Body struct
func GetUserAgentFlag ¶ added in v0.0.242
func GetUserAgentFlag(cmd *cobra.Command) (common.UserAgentPreset, error)
GetUserAgentFlag extracts and validates the user-agent flag from a cobra command. Returns UserAgentPresetRandom if the flag is not registered on this command.
func IsDetectedBinaryBody ¶ added in v0.0.245
IsDetectedBinaryBody reports whether body bytes classify the same way STANDARD would classify a binary response when no Content-Type header is available.
func ParseFormDataPairs ¶ added in v0.0.246
ParseFormDataPairs converts a slice of "key=value" strings (as supplied via a repeated --form-data CLI flag) into a map[string]string. Pairs that do not contain an equals sign are silently ignored. Leading and trailing whitespace is trimmed from both the key and the value. Returns nil when pairs is empty.
func ParseHeaderPairs ¶ added in v0.0.246
ParseHeaderPairs converts a slice of "Name: Value" strings (as supplied via a repeated --header CLI flag) into a map[string]string. Pairs that do not contain a colon are silently ignored. Leading and trailing whitespace is trimmed from both the name and the value. Returns nil when pairs is empty.
func RemoveScheme ¶ added in v0.0.93
RemoveScheme removes http:// or https:// from the beginning of a string
func SplitTargetURL ¶
SplitTargetURL splits a target URL and standardizes it into its base URL, path, and query parameter components.
func UnwrapURLError ¶ added in v0.0.263
UnwrapURLError returns the inner error of a *url.Error, which strips the repeated `Method "url":` prefix when the caller already logs the URL separately. The original error is returned when it is not a *url.Error.
func ValidateUserAgentWithRequestMethod ¶ added in v0.0.242
func ValidateUserAgentWithRequestMethod(userAgent common.UserAgentPreset, requestMethod common.RequestMethod, explicit bool) error
ValidateUserAgentWithRequestMethod returns an error if the user explicitly supplied --user-agent in a way the request method cannot honor. `explicit` must be true only when the user actually typed the flag on the command line (typically cmd.Flags().Changed("user-agent")); a missing flag is never an error and uses the request method's default UA.
Headless and browserbase modes apply CHROME/FIREFOX/SAFARI/EDGE via CDP, but reject RANDOM because randomizing the UA string while every other browser-introspectable signal still says Chromium creates an obvious fingerprint mismatch. Operators who want Chrome's real UA should simply omit the flag.
Types ¶
type MethodFlagData ¶ added in v0.0.93
type MethodFlagData struct {
RequestMethodEnum common.RequestMethod
HeadlessConfig *common.HeadlessRequestConfig
BrowserbaseConfig *common.BrowserbaseRequestConfig
BrowserbaseSecrets *common.BrowserbaseRequestSecrets
}
MethodFlagData holds all the configuration related to request methods
func GetRequestMethodFlags ¶ added in v0.0.93
func GetRequestMethodFlags(cmd *cobra.Command) (*MethodFlagData, error)
GetRequestMethodFlags extracts and validates all request method related configuration from a cobra command
type TransportErrorCategory ¶ added in v0.0.263
type TransportErrorCategory string
TransportErrorCategory is a stable, coarse classification of an HTTP attempt that never produced a response. Because there is no HTTP status code in that case, this category is the closest thing to an "error code" an operator can filter/triage on, which is exactly what is missing when a request fails behind a restrictive firewall and the only artifact is an opaque error.
const ( TransportErrorDNS TransportErrorCategory = "dns_resolution_failed" TransportErrorConnRefused TransportErrorCategory = "connection_refused" TransportErrorConnReset TransportErrorCategory = "connection_reset" TransportErrorTimeout TransportErrorCategory = "timeout" TransportErrorTLS TransportErrorCategory = "tls_error" TransportErrorNoRouteToHost TransportErrorCategory = "no_route_to_host" TransportErrorNetworkDown TransportErrorCategory = "network_unreachable" TransportErrorCanceled TransportErrorCategory = "canceled" TransportErrorTransport TransportErrorCategory = "transport_error" )
type TransportErrorDetail ¶ added in v0.0.263
type TransportErrorDetail struct {
Category TransportErrorCategory
Cause string
Op string
Network string
Address string
}
TransportErrorDetail is a structured, operator-facing description of a failed transport attempt. Cause is always the fully unwrapped error string (never the reflected struct), and the remaining fields name the layer that failed so a firewall/DNS/TLS problem can be told apart at a glance.
func ClassifyTransportError ¶ added in v0.0.263
func ClassifyTransportError(err error) TransportErrorDetail
ClassifyTransportError unwraps a Go HTTP client error (typically a *url.Error wrapping *net.OpError / *net.DNSError / x509 / tls / syscall errors) into a stable category plus the underlying cause and the network layer that failed. It exists so that a web request which never reaches the target surfaces *why* (DNS, refused, reset, no route, TLS, timeout) instead of an opaque struct dump — the common failure shape when egress is blocked by a customer firewall.
func (TransportErrorDetail) String ¶ added in v0.0.263
func (d TransportErrorDetail) String() string
String renders the detail as a single human-readable line suitable for a log param, a returned error, or a signal error entry.