API
#net/http
Xu 0.8.8 API
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
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
pub fn new_response() Response
Purpose
Construct response.
Parameters
none
Returns
Response — a value of this type
(Response) status_code
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
pub fn (r Response) status() string
Purpose
Call `status` on `Response`.
Parameters
r Response- receiver Response (value receiver)
Returns
string — result string
(Response) body
pub fn (r Response) body() string
Purpose
Call `body` on `Response`.
Parameters
r Response- receiver Response (value receiver)
Returns
string — result string
struct Request
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
pub fn new_request() Request
Purpose
Construct request.
Parameters
none
Returns
Request — a value of this type
(Request) method
pub fn (r Request) method() string
Purpose
Call `method` on `Request`.
Parameters
r Request- receiver Request (value receiver)
Returns
string — result string
(Request) path
pub fn (r Request) path() string
Purpose
Call `path` on `Request`.
Parameters
r Request- receiver Request (value receiver)
Returns
string — result string
(Request) body
pub fn (r Request) body() string
Purpose
Call `body` on `Request`.
Parameters
r Request- receiver Request (value receiver)
Returns
string — result string
(Request) user_agent
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
pub fn (r Request) host() string
Purpose
Method on `Request`: host.
Parameters
r Request- receiver Request (value receiver)
Returns
string — result string
struct Server
pub struct Server {
pub lfd int
}
Purpose
Public struct `Server`.
Parameters
lfd int- field (int)
new_server
pub fn new_server() Server
Purpose
Construct server.
Parameters
none
Returns
Server — a value of this type
(&mut Server) listen
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
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
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
pub fn status_text(code int) string
Purpose
Status text.
Parameters
code int- code (int)
Returns
string — result string
(&mut Response) get
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
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
pub fn (r Response) cookies() []Cookie
Purpose
Call `cookies` on `Response`.
Parameters
r Response- receiver Response (value receiver)
Returns
[]Cookie — slice result
struct Client
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
pub fn new_client() Client
Purpose
Construct client.
Parameters
none
Returns
Client — a value of this type
(&mut Client) set_jar
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
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
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
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
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
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
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
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
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
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
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
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
pub fn (c Context) path() string
Purpose
Call `path` on `Context`.
Parameters
c Context- receiver Context (value receiver)
Returns
string — result string
(Context) query
pub fn (c Context) query() string
Purpose
Call `query` on `Context`.
Parameters
c Context- receiver Context (value receiver)
Returns
string — result string
(Context) body
pub fn (c Context) body() string
Purpose
Call `body` on `Context`.
Parameters
c Context- receiver Context (value receiver)
Returns
string — result string
(Context) text
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) html
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
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
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
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
struct Cookie
pub struct Cookie {
pub name string
pub value string
pub path string
pub domain string
pub expires string
pub max_age int
pub secure bool
pub http_only bool
pub same_site string
}
Purpose
Cookie / Set-Cookie subset (RFC 6265) aligned with `net/http` ParseCookie / ParseSetCookie / Cookie.String. Expires is kept as raw text (no time.Time). SameSite is a string: "", Lax, Strict, None.
Parameters
name string- name
value string- field (string)
path string- filesystem path
domain string- field (string)
expires string- field (string)
max_age int- field (int)
secure bool- field (bool)
http_only bool- field (bool)
same_site string- field (string)
parse_cookie
pub fn parse_cookie(line &string) []Cookie
Purpose
Parse as cookie. Throws on failure.
Parameters
line &string- line (borrowed; caller keeps it; type &string)
Returns
[]Cookie — slice result
parse_set_cookie
pub fn parse_set_cookie(line &string) Cookie
Purpose
Parse as set cookie. Throws on failure.
Parameters
line &string- line (borrowed; caller keeps it; type &string)
Returns
Cookie — a value of this type
(Cookie) to_string
pub fn (c Cookie) to_string() string
Purpose
Method on `Cookie`: convert to string.
Parameters
c Cookie- receiver Cookie (value receiver)
Returns
string — result string
(Request) cookies
pub fn (r Request) cookies() []Cookie
Purpose
Call `cookies` on `Request`.
Parameters
r Request- receiver Request (value receiver)
Returns
[]Cookie — slice result
struct FileServer
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
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
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
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
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
(Response) reusable
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
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
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