net.http: add ability to parametrize the read and write timeouts of a http request (#10482)
parent
7b52dbfdf8
commit
b2e2a53f98
|
@ -7,6 +7,7 @@ import io
|
|||
import net
|
||||
import net.urllib
|
||||
import strings
|
||||
import time
|
||||
|
||||
// Request holds information about an HTTP request (either received by
|
||||
// a server or to be sent by a client)
|
||||
|
@ -21,6 +22,10 @@ pub mut:
|
|||
user_agent string = 'v.http'
|
||||
verbose bool
|
||||
user_ptr voidptr
|
||||
// NOT implemented for ssl connections
|
||||
// time = -1 for no timeout
|
||||
read_timeout i64 = 30 * time.second
|
||||
write_timeout i64 = 30 * time.second
|
||||
}
|
||||
|
||||
fn (mut req Request) free() {
|
||||
|
@ -138,6 +143,8 @@ fn (req &Request) http_do(host string, method Method, path string) ?Response {
|
|||
host_name, _ := net.split_address(host) ?
|
||||
s := req.build_request_headers(method, host_name, path)
|
||||
mut client := net.dial_tcp(host) ?
|
||||
client.set_read_timeout(req.read_timeout)
|
||||
client.set_write_timeout(req.write_timeout)
|
||||
// TODO this really needs to be exposed somehow
|
||||
client.write(s.bytes()) ?
|
||||
$if trace_http_request ? {
|
||||
|
|
Loading…
Reference in New Issue