simpleHttp

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HttpMethods = []string{
	"GET",
	"HEAD",
	"POST",
	"PUT",
	"PATCH",
	"DELETE",
	"CONNECT",
	"OPTIONS",
	"TRACE",
}

Functions

func PragmaCacheControl

func PragmaCacheControl(header http.Header)

PragmaCacheControl RFC 7234, section 5.4: Pragma: no-cache && Cache-Control: no-cache

func ValidBody

func ValidBody(body string) bool

func ValidHeader

func ValidHeader(header string) bool

func ValidMethod

func ValidMethod(method string) bool

ValidMethod 验证http方法

func ValidPath

func ValidPath(path string) bool

func ValidQuery

func ValidQuery(query string) bool

Types

type Body

type Body struct {
	// contains filtered or unexported fields
}

func MakeReaderWriteBody added in v1.2.0

func MakeReaderWriteBody() *Body

func NewReadBody added in v1.2.0

func NewReadBody(size int64, buff *codec.ByteBuf) *Body

func NewReaderWriteBody added in v1.2.0

func NewReaderWriteBody(buff *codec.ByteBuf) *Body

func (*Body) Read added in v1.2.0

func (b *Body) Read(p []byte) (n int, err error)

func (*Body) ReadBytes

func (b *Body) ReadBytes() ([]byte, error)

func (*Body) ReadString added in v1.2.0

func (b *Body) ReadString() (string, error)

func (*Body) Size added in v1.2.0

func (b *Body) Size() int64

func (*Body) Write added in v1.2.0

func (b *Body) Write(p []byte) (int, error)

func (*Body) WriteString added in v1.2.0

func (b *Body) WriteString(data string) (int, error)

type ClientHandler added in v1.2.0

type ClientHandler struct {
	// contains filtered or unexported fields
}

func NewClientHandler added in v1.2.0

func NewClientHandler() *ClientHandler

func (*ClientHandler) Input added in v1.2.0

func (c *ClientHandler) Input(context *event.HandleContext, reader *bufio.Reader) (any, bool)

func (*ClientHandler) Output added in v1.2.0

func (c *ClientHandler) Output(context *event.HandleContext, request *Request) (any, bool)

type Request

type Request struct {
	http.Request

	Response *Response
	// contains filtered or unexported fields
}

Request http请求体

func NewRequest added in v1.2.0

func NewRequest(readBuff *codec.ByteBuf) *Request

func NewRequestUrl added in v1.2.0

func NewRequestUrl(url string) *Request

func (*Request) AddCookie

func (r *Request) AddCookie(name, value string)

func (*Request) AddCookieEntity

func (r *Request) AddCookieEntity(cookie *http.Cookie)

func (*Request) AddHeader

func (r *Request) AddHeader(name, value string)

func (*Request) Body

func (r *Request) Body() *Body

func (*Request) SetBody added in v1.2.0

func (r *Request) SetBody(body *Body)

type RequestBuild

type RequestBuild struct {
	// contains filtered or unexported fields
}

RequestBuild 请求对象构造器

func NewRequestBuild

func NewRequestBuild() *RequestBuild

func (*RequestBuild) Agent

func (r *RequestBuild) Agent(agent string) *RequestBuild

func (*RequestBuild) Build

func (r *RequestBuild) Build() *Request

func (*RequestBuild) Cookie

func (r *RequestBuild) Cookie(name, value string) *RequestBuild

func (*RequestBuild) Get

func (r *RequestBuild) Get() *RequestBuild

func (*RequestBuild) Header

func (r *RequestBuild) Header(name, value string) *RequestBuild

func (*RequestBuild) Method

func (r *RequestBuild) Method(method string) *RequestBuild

func (*RequestBuild) Post

func (r *RequestBuild) Post() *RequestBuild

func (*RequestBuild) Proto

func (r *RequestBuild) Proto(proto string) *RequestBuild

Proto 设置http协议版本, 如 HTTP/1.1、HTTP/1.

func (*RequestBuild) Uri

func (r *RequestBuild) Uri(uri string) *RequestBuild

type RequestDecoder

type RequestDecoder struct{}

RequestDecoder 请求解码器, 从io缓冲区读取字节流, 并解码为http请求对象, 缓冲区一般为socket连接, 也可以使字节数组等

func NewRequestDecoder

func NewRequestDecoder() *RequestDecoder

NewRequestDecoder 构造函数

func (*RequestDecoder) Decoder

func (r *RequestDecoder) Decoder(reader *bufio.Reader) (request *Request, err error)

Decoder 解码入口

type RequestEncode

type RequestEncode struct{}

RequestEncode http编码器, 把request对象编码成字节流, 根据 RFC2616 规范编码 适用于http客户端场景,把构建好的请求对象编码成字节流发送给服务器。

func NewRequestEncode

func NewRequestEncode() *RequestEncode

func (*RequestEncode) Encoder

func (r *RequestEncode) Encoder(request *Request) (err error)

type Response

type Response struct {
	Proto      string
	ProtoMajor int
	ProtoMinor int

	Header http.Header
	Close  bool

	Server string
	// contains filtered or unexported fields
}

func NewReplyResponse

func NewReplyResponse(request *Request) *Response

NewReplyResponse 创建请求响应体, 根据request创建Response, 用于编写HttpServer服务器时响应客户端请求

func NewResponse

func NewResponse() *Response

func NewResponseReader

func NewResponseReader(bufReader *codec.ByteBuf) *Response

func (*Response) AddCookie

func (r *Response) AddCookie(name, value string)

func (*Response) AddCookieEntity

func (r *Response) AddCookieEntity(cookie *http.Cookie)

func (*Response) AddHeader

func (r *Response) AddHeader(name, value string)

func (*Response) Body

func (r *Response) Body() *Body

func (*Response) Cookies

func (r *Response) Cookies() []*http.Cookie

func (*Response) Request

func (r *Response) Request() *Request

func (*Response) SetBody added in v1.2.0

func (r *Response) SetBody(body *Body)

func (*Response) SetStatusCode

func (r *Response) SetStatusCode(statusCode int)

func (*Response) StatusCode

func (r *Response) StatusCode() int

type ResponseBuild

type ResponseBuild struct {
	// contains filtered or unexported fields
}

func NewResponseBuild

func NewResponseBuild() *ResponseBuild

func (*ResponseBuild) Body

func (r *ResponseBuild) Body(body []byte) *ResponseBuild

func (*ResponseBuild) Build

func (r *ResponseBuild) Build() *Response

func (*ResponseBuild) Header

func (r *ResponseBuild) Header(key, value string) *ResponseBuild

func (*ResponseBuild) Server

func (r *ResponseBuild) Server(server string) *ResponseBuild

func (*ResponseBuild) Status

func (r *ResponseBuild) Status(code int) *ResponseBuild

type ResponseDecode

type ResponseDecode struct{}

func NewResponseDecoded

func NewResponseDecoded() *ResponseDecode

func (*ResponseDecode) Decoder

func (r *ResponseDecode) Decoder(reader *bufio.Reader) (response *Response, err error)

type ResponseEncode

type ResponseEncode struct{}

func NewResponseEncoded

func NewResponseEncoded() *ResponseEncode

func (*ResponseEncode) Encode added in v1.2.0

func (r *ResponseEncode) Encode(response *Response) (err error)

type ServerHandler added in v1.2.0

type ServerHandler struct {
	// contains filtered or unexported fields
}

func NewServerHandler added in v1.2.0

func NewServerHandler() *ServerHandler

func (*ServerHandler) Input added in v1.2.0

func (s *ServerHandler) Input(context *event.HandleContext, reader *bufio.Reader) (any, bool)

func (*ServerHandler) Output added in v1.2.0

func (s *ServerHandler) Output(context *event.HandleContext, response *Response) (any, bool)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL