XU XUv0.8.8
中文

API

#net/http

import: #net/http

counts: 19 fns, 46 methods, 8 types, 0 consts, 0 ifaces

HTTP/1.1 Client and Server, Header, Cookie. No TLS in this package.

struct Response

XuAPI
pub struct Response {
    pub status_code int
    pub status string
    pub headers string
    pub body string
    pub sticky string
}

Purpose

Public struct `Response`.

Parameters

status_code int
field (int)
status string
field (string)
headers string
field (string)
body string
body
sticky string
field (string)

new_response

XuAPI
pub fn new_response() Response

Purpose

Construct response.

Parameters

none

Returns

Response — a value of this type

(Response) status_code

XuAPI
pub fn (r Response) status_code() int

Purpose

Method on `Response`: status code.

Parameters

r Response
receiver Response (value receiver)

Returns

int — a value of this type

(Response) status

XuAPI
pub fn (r Response) status() string

Purpose

Call `status` on `Response`.

Parameters

r Response
receiver Response (value receiver)

Returns

string — result string

(Response) body

XuAPI
pub fn (r Response) body() string

Purpose

Call `body` on `Response`.

Parameters

r Response
receiver Response (value receiver)

Returns

string — result string

(Response) header

XuAPI
pub fn (r Response) header(name string) string

Purpose

Call `header` on `Response`.

Parameters

r Response
receiver Response (value receiver)
name string
name (string)

Returns

string — result string

struct Request

XuAPI
pub struct Request {
    pub method string
    pub path string
    pub headers string
    pub body string
    pub sticky string
}

Purpose

Public struct `Request`.

Parameters

method string
field (string)
path string
filesystem path
headers string
field (string)
body string
body
sticky string
field (string)

new_request

XuAPI
pub fn new_request() Request

Purpose

Construct request.

Parameters

none

Returns

Request — a value of this type

(Request) method

XuAPI
pub fn (r Request) method() string

Purpose

Call `method` on `Request`.

Parameters

r Request
receiver Request (value receiver)

Returns

string — result string

(Request) path

XuAPI
pub fn (r Request) path() string

Purpose

Call `path` on `Request`.

Parameters

r Request
receiver Request (value receiver)

Returns

string — result string

(Request) body

XuAPI
pub fn (r Request) body() string

Purpose

Call `body` on `Request`.

Parameters

r Request
receiver Request (value receiver)

Returns

string — result string

(Request) header

XuAPI
pub fn (r Request) header(name string) string

Purpose

Call `header` on `Request`.

Parameters

r Request
receiver Request (value receiver)
name string
name (string)

Returns

string — result string

(Request) user_agent

XuAPI
pub fn (r Request) user_agent() string

Purpose

Method on `Request`: user agent.

Parameters

r Request
receiver Request (value receiver)

Returns

string — result string

(Request) host

XuAPI
pub fn (r Request) host() string

Purpose

Method on `Request`: host.

Parameters

r Request
receiver Request (value receiver)

Returns

string — result string

struct Server

XuAPI
pub struct Server {
    pub lfd int
}

Purpose

Public struct `Server`.

Parameters

lfd int
field (int)

new_server

XuAPI
pub fn new_server() Server

Purpose

Construct server.

Parameters

none

Returns

Server — a value of this type

(&mut Server) listen

XuAPI
pub fn (s &mut Server) listen(addr string) int

Purpose

Method on `&mut Server`: listen for connections. Throws on failure.

Parameters

s &mut Server
receiver &mut Server (exclusive borrow)
addr string
address (string)

Returns

int — a value of this type

(Server) accept

XuAPI
pub fn (s Server) accept() int

Purpose

Method on `Server`: accept one connection. Throws on failure.

Parameters

s Server
receiver Server (value receiver)

Returns

int — a value of this type

(&mut Server) close

XuAPI
pub fn (s &mut Server) close() int

Purpose

Method on `&mut Server`: close the resource.

Parameters

s &mut Server
receiver &mut Server (exclusive borrow)

Returns

int — a value of this type

status_text

XuAPI
pub fn status_text(code int) string

Purpose

Status text.

Parameters

code int
code (int)

Returns

string — result string

(&mut Response) get

XuAPI
pub fn (r &mut Response) get(url string) int

Purpose

Call `get` on `&mut Response`. Throws on failure.

Parameters

r &mut Response
receiver &mut Response (exclusive borrow)
url string
url (string)

Returns

int — a value of this type

(&mut Response) post

XuAPI
pub fn (r &mut Response) post(url string, body &string) int

Purpose

Call `post` on `&mut Response`. Throws on failure.

Parameters

r &mut Response
receiver &mut Response (exclusive borrow)
url string
url (string)
body &string
body (borrowed; caller keeps it; type &string)

Returns

int — a value of this type

(Response) cookies

XuAPI
pub fn (r Response) cookies() []Cookie

Purpose

Call `cookies` on `Response`.

Parameters

r Response
receiver Response (value receiver)

Returns

[]Cookie — slice result

struct Client

XuAPI
pub struct Client {
    pub jar cookiejar.Jar
    pub jar_on int
    pub timeout_ns int
    pub max_redirects int
}

Purpose

Public struct `Client`.

Parameters

jar cookiejar.Jar
field (cookiejar.Jar)
jar_on int
field (int)
timeout_ns int
One budget for HTTP/TLS I/O and redirects; 0 disables it. Synchronous DNS and Linux TCP connect still need cancellable platform adapters.
max_redirects int
field (int)

new_client

XuAPI
pub fn new_client() Client

Purpose

Construct client.

Parameters

none

Returns

Client — a value of this type

(&mut Client) set_jar

XuAPI
pub fn (c &mut Client) set_jar(j cookiejar.Jar)

Purpose

Method on `&mut Client`: set jar.

Parameters

c &mut Client
receiver &mut Client (exclusive borrow)
j cookiejar.Jar
index (cookiejar.Jar)

(&mut Client) set_timeout

XuAPI
pub fn (c &mut Client) set_timeout(ns int)

Purpose

Method on `&mut Client`: set timeout.

Parameters

c &mut Client
receiver &mut Client (exclusive borrow)
ns int
ns (int)

(&mut Client) do

XuAPI
pub fn (c &mut Client) do(method string, raw_url string, body &string) Response

Purpose

Call `do` on `&mut Client`. Throws on failure.

Parameters

c &mut Client
receiver &mut Client (exclusive borrow)
method string
method (string)
raw_url string
raw_url (string)
body &string
body (borrowed; caller keeps it; type &string)

Returns

Response — a value of this type

(&mut Client) get

XuAPI
pub fn (c &mut Client) get(raw_url string) Response

Purpose

Call `get` on `&mut Client`. Throws on failure.

Parameters

c &mut Client
receiver &mut Client (exclusive borrow)
raw_url string
raw_url (string)

Returns

Response — a value of this type

(&mut Client) post

XuAPI
pub fn (c &mut Client) post(raw_url string, body &string) Response

Purpose

Call `post` on `&mut Client`. Throws on failure.

Parameters

c &mut Client
receiver &mut Client (exclusive borrow)
raw_url string
raw_url (string)
body &string
body (borrowed; caller keeps it; type &string)

Returns

Response — a value of this type

(&mut Request) read

XuAPI
pub fn (req &mut Request) read(fd int) int

Purpose

Method on `&mut Request`: read up to max bytes. Throws on failure.

Parameters

req &mut Request
receiver &mut Request (exclusive borrow)
fd int
file descriptor (int)

Returns

int — a value of this type

write_response

XuAPI
pub fn write_response(fd int, status_code int, body &string) int

Purpose

Write response. Throws on failure.

Parameters

fd int
file descriptor (int)
status_code int
status_code (int)
body &string
body (borrowed; caller keeps it; type &string)

Returns

int — a value of this type

write

XuAPI
pub fn write(fd int, status_code int, content_type string, body &string) int

Purpose

write is the typed-body form of a one-shot HTTP/1.1 response ( http.ResponseWriter WriteHeader+Write, Connection: close).

Parameters

fd int
file descriptor (int)
status_code int
status_code (int)
content_type string
content_type (string)
body &string
body (borrowed; caller keeps it; type &string)

Returns

int — bytes written

(&Client) has_idle_connection

XuAPI
pub fn (c &Client) has_idle_connection() bool

Purpose

Method on `&Client`: whether it has idle connection.

Parameters

c &Client
receiver &Client (borrow)

Returns

bool — true or false

struct Context

XuAPI
pub struct Context {
    pub fd int
    pub req Request
}

Purpose

Request context ( `http.Handler` / `HandlerFunc`). func hello(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "ok") } http.ListenAndServe(":8080", http.HandlerFunc(hello)) Xu folds w+r into Context fn hello(c http.Context) { c.text(200, "ok") } http.listen_and_serve_handler("127.0.0.1:8080", hello)

Parameters

fd int
file descriptor
req Request
field (Request)

(Context) method

XuAPI
pub fn (c Context) method() string

Purpose

Call `method` on `Context`.

Parameters

c Context
receiver Context (value receiver)

Returns

string — result string

(Context) raw_path

XuAPI
pub fn (c Context) raw_path() string

Purpose

Method on `Context`: raw path.

Parameters

c Context
receiver Context (value receiver)

Returns

string — result string

(Context) path

XuAPI
pub fn (c Context) path() string

Purpose

Call `path` on `Context`.

Parameters

c Context
receiver Context (value receiver)

Returns

string — result string

(Context) query

XuAPI
pub fn (c Context) query() string

Purpose

Call `query` on `Context`.

Parameters

c Context
receiver Context (value receiver)

Returns

string — result string

(Context) header

XuAPI
pub fn (c Context) header(name string) string

Purpose

Call `header` on `Context`.

Parameters

c Context
receiver Context (value receiver)
name string
name (string)

Returns

string — result string

(Context) body

XuAPI
pub fn (c Context) body() string

Purpose

Call `body` on `Context`.

Parameters

c Context
receiver Context (value receiver)

Returns

string — result string

(Context) text

XuAPI
pub fn (c Context) text(status int, body string) int

Purpose

Method on `Context`: return the current text. Throws on failure.

Parameters

c Context
receiver Context (value receiver)
status int
status (int)
body string
body (string)

Returns

int — a value of this type

(Context) text_extra

XuAPI
pub fn (c Context) text_extra(status int, extra string, body string) int

Purpose

Method on `Context`: text extra. Throws on failure.

Parameters

c Context
receiver Context (value receiver)
status int
status (int)
extra string
extra (string)
body string
body (string)

Returns

int — a value of this type

(Context) html

XuAPI
pub fn (c Context) html(status int, body string) int

Purpose

Call `html` on `Context`. Throws on failure.

Parameters

c Context
receiver Context (value receiver)
status int
status (int)
body string
body (string)

Returns

int — a value of this type

(Context) bytes

XuAPI
pub fn (c Context) bytes(status int, content_type string, body string) int

Purpose

Method on `Context`: return the buffered bytes. Throws on failure.

Parameters

c Context
receiver Context (value receiver)
status int
status (int)
content_type string
content_type (string)
body string
body (string)

Returns

int — a value of this type

(Server) serve

XuAPI
pub fn (s Server) serve(handle fn(Context)) int

Purpose

serve is (*Server).Serve for an already-listening Server. close from another goroutine unblocks Accept and ends the loop.

Parameters

s Server
receiver Server (value receiver)
handle fn(Context)
handle (function value; type fn(Context))

Returns

int — a value of this type

listen_and_serve_handler

XuAPI
pub fn listen_and_serve_handler(addr string, handle fn(Context)) int

Purpose

listen_and_serve_handler is ListenAndServe(addr, HandlerFunc(fn)). Throws on failure.

Parameters

addr string
address (string)
handle fn(Context)
handle (function value; type fn(Context))

Returns

int — a value of this type

(Request) cookies

XuAPI
pub fn (r Request) cookies() []Cookie

Purpose

Call `cookies` on `Request`.

Parameters

r Request
receiver Request (value receiver)

Returns

[]Cookie — slice result

struct FileServer

XuAPI
pub struct FileServer {
    pub root string
}

Purpose

FileServer + ListenAndServe ( FileServer / FileServerFS). Open goes through os.DirFS + io/fs (ValidPath, no `..` escape). http.listen_and_serve("127.0.0.1:8080", ".") Serves GET/HEAD under `root`. Directories use index.html when present, otherwise a listing. Paths are cleaned so `..` cannot escape root.

Parameters

root string
field (string)

file_server

XuAPI
pub fn file_server(root string) FileServer

Purpose

File server.

Parameters

root string
root (string)

Returns

FileServer — a value of this type

listen_and_serve

XuAPI
pub fn listen_and_serve(addr string, root string) int

Purpose

Listen and serve. Throws on failure.

Parameters

addr string
address (string)
root string
root (string)

Returns

int — a value of this type

(FileServer) serve

XuAPI
pub fn (fs FileServer) serve(fd int)

Purpose

Call `serve` on `FileServer`.

Parameters

fs FileServer
receiver FileServer (value receiver)
fd int
file descriptor (int)

serve_file

XuAPI
pub fn serve_file(fd int, name string) int

Purpose

Serve file. Throws on failure.

Parameters

fd int
file descriptor (int)
name string
name (string)

Returns

int — a value of this type

struct Header

XuAPI
pub struct Header {
    pub keys []string
    pub vals []string
}

Purpose

Header is a case-insensitive MIME header ( `http.Header` `textproto.MIMEHeader` subset). No map: parallel keys/vals; Add appends a second pair with the same canonical key.

Parameters

keys []string
field ([]string)
vals []string
field ([]string)

new_header

XuAPI
pub fn new_header() Header

Purpose

Construct header.

Parameters

none

Returns

Header — a value of this type

canonical_header_key

XuAPI
pub fn canonical_header_key(s &string) string

Purpose

Canonical header key.

Parameters

s &string
source string (borrowed; caller keeps it; type &string)

Returns

string — result string

(&mut Header) add

XuAPI
pub fn (h &mut Header) add(key &string, value &string)

Purpose

Method on `&mut Header`: add.

Parameters

h &mut Header
receiver &mut Header (exclusive borrow)
key &string
key (borrowed; caller keeps it; type &string)
value &string
value (borrowed; caller keeps it; type &string)

(&mut Header) del

XuAPI
pub fn (h &mut Header) del(key &string)

Purpose

Call `del` on `&mut Header`.

Parameters

h &mut Header
receiver &mut Header (exclusive borrow)
key &string
key (borrowed; caller keeps it; type &string)

(&mut Header) set

XuAPI
pub fn (h &mut Header) set(key &string, value &string)

Purpose

Call `set` on `&mut Header`.

Parameters

h &mut Header
receiver &mut Header (exclusive borrow)
key &string
key (borrowed; caller keeps it; type &string)
value &string
value (borrowed; caller keeps it; type &string)

(Header) get

XuAPI
pub fn (h Header) get(key &string) string

Purpose

Call `get` on `Header`.

Parameters

h Header
receiver Header (value receiver)
key &string
key (borrowed; caller keeps it; type &string)

Returns

string — result string

(Header) values

XuAPI
pub fn (h Header) values(key &string) []string

Purpose

Call `values` on `Header`.

Parameters

h Header
receiver Header (value receiver)
key &string
key (borrowed; caller keeps it; type &string)

Returns

[]string — slice result

(Header) clone

XuAPI
pub fn (h Header) clone() Header

Purpose

Method on `Header`: copy into a new independent string.

Parameters

h Header
receiver Header (value receiver)

Returns

Header — a value of this type

(Header) len

XuAPI
pub fn (h Header) len() int

Purpose

Method on `Header`: return the length.

Parameters

h Header
receiver Header (value receiver)

Returns

int — a value of this type

(Header) write

XuAPI
pub fn (h Header) write() string

Purpose

Method on `Header`: write data and return the byte count.

Parameters

h Header
receiver Header (value receiver)

Returns

string — result string

parse_header

XuAPI
pub fn parse_header(raw &string) Header

Purpose

Parse as header.

Parameters

raw &string
raw (borrowed; caller keeps it; type &string)

Returns

Header — a value of this type

(Response) reusable

XuAPI
pub fn (r Response) reusable(method string) bool

Purpose

Call only after read_response has validated and consumed the entire message.

Parameters

r Response
receiver Response (value receiver)
method string
method (string)

Returns

bool — true or false

read_response

XuAPI
pub fn read_response(fd int, method string) Response

Purpose

Read one response on a caller-owned socket. Serial keep-alive requests are supported; pipelined requests require a persistent buffered transport. Throws on failure.

Parameters

fd int
file descriptor (int)
method string
method (string)

Returns

Response — a value of this type

detect_content_type

XuAPI
pub fn detect_content_type(data &string) string

Purpose

Detect content type.

Parameters

data &string
data (borrowed; caller keeps it; type &string)

Returns

string — result string