http

package
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: May 31, 2023 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//不识别该 未知方法
	HTTP_METHOD_UNKNOWN http_method = -1
	//不支持的请求方法
	HTTP_METHOD_NOT_SUPPORTED http_method = 0
	//GET请求方法
	HTTP_METHOD_GET http_method = 1
	//HEAD请求方法
	HTTP_METHOD_HEAD http_method = 2
)
View Source
const (
	HTTP_VERSION_UNKNOWN http_version = iota
	HTTP_VERSION_09
	HTTP_VERSION_10
	HTTP_VERSION_11
)
View Source
const (
	HTTP_RECV_STATE_WORD1 http_recv_state = iota
	HTTP_RECV_STATE_WORD2
	HTTP_RECV_STATE_WORD3
	HTTP_RECV_STATE_SP1
	HTTP_RECV_STATE_SP2
	HTTP_RECV_STATE_LF
	HTTP_RECV_STATE_LINE
)
View Source
const (
	StatusContinue           = 100 // RFC 7231, 6.2.1
	StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2
	StatusProcessing         = 102 // RFC 2518, 10.1

	StatusOK                   = 200 // RFC 7231, 6.3.1
	StatusCreated              = 201 // RFC 7231, 6.3.2
	StatusAccepted             = 202 // RFC 7231, 6.3.3
	StatusNonAuthoritativeInfo = 203 // RFC 7231, 6.3.4
	StatusNoContent            = 204 // RFC 7231, 6.3.5
	StatusResetContent         = 205 // RFC 7231, 6.3.6
	StatusPartialContent       = 206 // RFC 7233, 4.1
	StatusMultiStatus          = 207 // RFC 4918, 11.1
	StatusAlreadyReported      = 208 // RFC 5842, 7.1
	StatusIMUsed               = 226 // RFC 3229, 10.4.1

	StatusMultipleChoices  = 300 // RFC 7231, 6.4.1
	StatusMovedPermanently = 301 // RFC 7231, 6.4.2
	StatusFound            = 302 // RFC 7231, 6.4.3
	StatusSeeOther         = 303 // RFC 7231, 6.4.4
	StatusNotModified      = 304 // RFC 7232, 4.1
	StatusUseProxy         = 305 // RFC 7231, 6.4.5

	StatusTemporaryRedirect = 307 // RFC 7231, 6.4.7
	StatusPermanentRedirect = 308 // RFC 7538, 3

	StatusBadRequest                   = 400 // RFC 7231, 6.5.1
	StatusUnauthorized                 = 401 // RFC 7235, 3.1
	StatusPaymentRequired              = 402 // RFC 7231, 6.5.2
	StatusForbidden                    = 403 // RFC 7231, 6.5.3
	StatusNotFound                     = 404 // RFC 7231, 6.5.4
	StatusMethodNotAllowed             = 405 // RFC 7231, 6.5.5
	StatusNotAcceptable                = 406 // RFC 7231, 6.5.6
	StatusProxyAuthRequired            = 407 // RFC 7235, 3.2
	StatusRequestTimeout               = 408 // RFC 7231, 6.5.7
	StatusConflict                     = 409 // RFC 7231, 6.5.8
	StatusGone                         = 410 // RFC 7231, 6.5.9
	StatusLengthRequired               = 411 // RFC 7231, 6.5.10
	StatusPreconditionFailed           = 412 // RFC 7232, 4.2
	StatusRequestEntityTooLarge        = 413 // RFC 7231, 6.5.11
	StatusRequestURITooLong            = 414 // RFC 7231, 6.5.12
	StatusUnsupportedMediaType         = 415 // RFC 7231, 6.5.13
	StatusRequestedRangeNotSatisfiable = 416 // RFC 7233, 4.4
	StatusExpectationFailed            = 417 // RFC 7231, 6.5.14
	StatusTeapot                       = 418 // RFC 7168, 2.3.3
	StatusMisdirectedRequest           = 421 // RFC 7540, 9.1.2
	StatusUnprocessableEntity          = 422 // RFC 4918, 11.2
	StatusLocked                       = 423 // RFC 4918, 11.3
	StatusFailedDependency             = 424 // RFC 4918, 11.4
	StatusTooEarly                     = 425 // RFC 8470, 5.2.
	StatusUpgradeRequired              = 426 // RFC 7231, 6.5.15
	StatusPreconditionRequired         = 428 // RFC 6585, 3
	StatusTooManyRequests              = 429 // RFC 6585, 4
	StatusRequestHeaderFieldsTooLarge  = 431 // RFC 6585, 5
	StatusUnavailableForLegalReasons   = 451 // RFC 7725, 3

	StatusInternalServerError           = 500 // RFC 7231, 6.6.1
	StatusNotImplemented                = 501 // RFC 7231, 6.6.2
	StatusBadGateway                    = 502 // RFC 7231, 6.6.3
	StatusServiceUnavailable            = 503 // RFC 7231, 6.6.4
	StatusGatewayTimeout                = 504 // RFC 7231, 6.6.5
	StatusHTTPVersionNotSupported       = 505 // RFC 7231, 6.6.6
	StatusVariantAlsoNegotiates         = 506 // RFC 2295, 8.1
	StatusInsufficientStorage           = 507 // RFC 4918, 11.5
	StatusLoopDetected                  = 508 // RFC 5842, 7.2
	StatusNotExtended                   = 510 // RFC 2774, 7
	StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6
)

Variables

This section is empty.

Functions

func StatusText

func StatusText(code int) string

StatusText returns a text for the HTTP status code. It returns the empty string if the code is unknown.

Types

type Client

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

func NewClient

func NewClient(url string) (*Client, error)

NewCient new http client NewClient("http://10.0.2.15:8080/")

func (*Client) GetConnection

func (c *Client) GetConnection() *Connection

GetConnection

func (*Client) GetRequest

func (c *Client) GetRequest() *Request

func (*Client) GetResult

func (c *Client) GetResult() (string, error)

GetResult

func (*Client) Push

func (c *Client) Push() (err error)

GetBody

func (*Client) SetData

func (c *Client) SetData(buf string)

SetData

func (*Client) SetHeaders

func (c *Client) SetHeaders(headers map[string]string)

SetHeaders

func (*Client) SetMethod

func (c *Client) SetMethod(method string)

SetMethod

type Connection

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

func NewCon

func NewCon(e socket.Socket) *Connection

等待并接受新的连接

func (*Connection) Close

func (con *Connection) Close()

Close close the connection

func (*Connection) Read

func (con *Connection) Read() ([]byte, error)

Read 读取单次所有数据包 不等待直接返回

func (*Connection) Readn

func (con *Connection) Readn(p []byte) (int, error)

Readn 读取n字节

func (*Connection) Write

func (con *Connection) Write(buf []byte) error

Write

type Request

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

HTTP请求结构体,包含HTTP方法,版本,URI,HTTP头,内容长

func (*Request) GetBody

func (req *Request) GetBody() string

GetBody get get|post data

func (*Request) GetHeader

func (req *Request) GetHeader(h string) string

GetHeader header

func (*Request) GetMethod

func (req *Request) GetMethod() string

GetMethod d

type Response

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

HTTP响应结构体,包含内容长度,内容,HTTP头部

func (*Response) End

func (r *Response) End(buf string)

End send the body

func (*Response) Error

func (r *Response) Error(code int)

Error set status_code

func (*Response) GetCon

func (r *Response) GetCon() *Connection

GetCon get

type ServeMux

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

type Server

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

Server Http

func NewHTTP

func NewHTTP(tapName, cidrName, addrName, portName string) *Server

NewHTTP usage:", os.Args[0], "<tap-device> <local-address/mask> <ipv4-address> <port>

func (*Server) HandleFunc

func (s *Server) HandleFunc(pattern string, handler func(*Request, *Response))

HandleFunc handle pattern

func (*Server) ListenAndServ

func (s *Server) ListenAndServ()

type ServerSocket

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

func NewServerSocket

func NewServerSocket(e tcpip.Endpoint, q *waiter.Queue) *ServerSocket

func (*ServerSocket) Close

func (s *ServerSocket) Close()

关闭连接

func (*ServerSocket) GetAddr

func (s *ServerSocket) GetAddr() tcpip.Address

GetAddr 获取客户端ip地址

func (*ServerSocket) GetNotify

func (s *ServerSocket) GetNotify() chan struct{}

GetNotify

func (*ServerSocket) GetQueue

func (s *ServerSocket) GetQueue() *waiter.Queue

GetQueue 获取接收时间队列

func (*ServerSocket) GetRemoteAddr

func (s *ServerSocket) GetRemoteAddr() *tcpip.FullAddress

GetRemoteAddr 获取远程客户端ip地址

func (*ServerSocket) Read

func (s *ServerSocket) Read() ([]byte, error)

Read data

func (*ServerSocket) Readn

func (s *ServerSocket) Readn(p []byte) (int, error)

Readn 读取固定字节的数据

func (*ServerSocket) Write

func (s *ServerSocket) Write(buf []byte) error

Write write

type Socket

type Socket interface {
	//Write write
	Write(buf []byte) error
	//Read data
	Read() ([]byte, error)
	//Readn  读取固定字节的数据
	Readn(p []byte) (int, error)
	Close()
}

Socket 提供数据读写io接口

Jump to

Keyboard shortcuts

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