go.net.http
1.23.1.3
dotnet add package go.net.http --version 1.23.1.3
NuGet\Install-Package go.net.http -Version 1.23.1.3
<PackageReference Include="go.net.http" Version="1.23.1.3" />
<PackageVersion Include="go.net.http" Version="1.23.1.3" />
<PackageReference Include="go.net.http" />
paket add go.net.http --version 1.23.1.3
#r "nuget: go.net.http, 1.23.1.3"
#:package go.net.http@1.23.1.3
#addin nuget:?package=go.net.http&version=1.23.1.3
#tool nuget:?package=go.net.http&version=1.23.1.3
go.net.http
C# package converted from the Go standard library by go2cs. Go version: 1.23.1
Package http provides HTTP client and server implementations.
[Get], [Head], [Post], and [PostForm] make HTTP (or HTTPS) requests:
resp, err := http.Get("http://example.com/")
...
resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf)
...
resp, err := http.PostForm("http://example.com/form",
url.Values{"key": {"Value"}, "id": {"123"}})
The caller must close the response body when finished with it:
resp, err := http.Get("http://example.com/")
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
// ...
Clients and Transports
For control over HTTP client headers, redirect policy, and other settings, create a [Client]:
client := &http.Client{
CheckRedirect: redirectPolicyFunc,
}
resp, err := client.Get("http://example.com")
// ...
req, err := http.NewRequest("GET", "http://example.com", nil)
// ...
req.Header.Add("If-None-Match", `W/"wyzzy"`)
resp, err := client.Do(req)
// ...
For control over proxies, TLS configuration, keep-alives, compression, and other settings, create a [Transport]:
tr := &http.Transport{
MaxIdleConns: 10,
IdleConnTimeout: 30 * time.Second,
DisableCompression: true,
}
client := &http.Client{Transport: tr}
resp, err := client.Get("https://example.com")
Clients and Transports are safe for concurrent use by multiple goroutines and for efficiency should only be created once and re-used.
Servers
ListenAndServe starts an HTTP server with a given address and handler. The handler is usually nil, which means to use [DefaultServeMux]. [Handle] and [HandleFunc] add handlers to [DefaultServeMux]:
http.Handle("/foo", fooHandler)
http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
})
log.Fatal(http.ListenAndServe(":8080", nil))
More control over the server's behavior is available by creating a custom Server:
s := &http.Server{
Addr: ":8080",
Handler: myHandler,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
log.Fatal(s.ListenAndServe())
HTTP/2
Starting with Go 1.6, the http package has transparent support for the HTTP/2 protocol when using HTTPS. Programs that must disable HTTP/2 can do so by setting [Transport.TLSNextProto] (for clients) or [Server.TLSNextProto] (for servers) to a non-nil, empty map. Alternatively, the following GODEBUG settings are currently supported:
GODEBUG=http2client=0 # disable HTTP/2 client support
GODEBUG=http2server=0 # disable HTTP/2 server support
GODEBUG=http2debug=1 # enable verbose HTTP/2 debug logs
GODEBUG=http2debug=2 # ... even more verbose, with frame dumps
Please report any issues before disabling HTTP/2 support: https://golang.org/s/http2bug
The http package's [Transport] and [Server] both automatically enable HTTP/2 support for simple configurations. To enable HTTP/2 for more complex configurations, to use lower-level HTTP/2 features, or to use a newer version of Go's http2 package, import "golang.org/x/net/http2" directly and use its ConfigureTransport and/or ConfigureServer functions. Manually configuring HTTP/2 via the golang.org/x/net/http2 package takes precedence over the net/http package's built-in HTTP/2 support.
Part of the go2cs converted Go standard library. See the repository for usage and details.
Copyright 2009 The Go Authors. All rights reserved. This C# package is converted from Go standard library source; use of that source is governed by a BSD-style license that can be found in the LICENSE file. The go2cs conversion itself is distributed under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- go.bufio (>= 1.23.1.3)
- go.bytes (>= 1.23.1.3)
- go.compress.gzip (>= 1.23.1.3)
- go.container.list (>= 1.23.1.3)
- go.context (>= 1.23.1.3)
- go.crypto.rand (>= 1.23.1.3)
- go.crypto.tls (>= 1.23.1.3)
- go.encoding.base64 (>= 1.23.1.3)
- go.encoding.binary (>= 1.23.1.3)
- go.errors (>= 1.23.1.3)
- go.fmt (>= 1.23.1.3)
- go.internal.godebug (>= 1.23.1.3)
- go.io (>= 1.23.1.3)
- go.io.fs (>= 1.23.1.3)
- go.lib (>= 1.23.1.3)
- go.log (>= 1.23.1.3)
- go.maps (>= 1.23.1.3)
- go.math (>= 1.23.1.3)
- go.math.bits (>= 1.23.1.3)
- go.math.rand (>= 1.23.1.3)
- go.mime (>= 1.23.1.3)
- go.mime.multipart (>= 1.23.1.3)
- go.net (>= 1.23.1.3)
- go.net.http.httptrace (>= 1.23.1.3)
- go.net.http.internal (>= 1.23.1.3)
- go.net.http.internal.ascii (>= 1.23.1.3)
- go.net.textproto (>= 1.23.1.3)
- go.net.url (>= 1.23.1.3)
- go.os (>= 1.23.1.3)
- go.path (>= 1.23.1.3)
- go.path.filepath (>= 1.23.1.3)
- go.reflect (>= 1.23.1.3)
- go.runtime (>= 1.23.1.3)
- go.slices (>= 1.23.1.3)
- go.sort (>= 1.23.1.3)
- go.strconv (>= 1.23.1.3)
- go.strings (>= 1.23.1.3)
- go.sync (>= 1.23.1.3)
- go.sync.atomic (>= 1.23.1.3)
- go.time (>= 1.23.1.3)
- go.unicode (>= 1.23.1.3)
- go.unicode.utf8 (>= 1.23.1.3)
- go.unsafe (>= 1.23.1.3)
- go.vendor.golang.org.x.net.http.httpguts (>= 1.23.1.3)
- go.vendor.golang.org.x.net.http.httpproxy (>= 1.23.1.3)
- go.vendor.golang.org.x.net.http2.hpack (>= 1.23.1.3)
- go.vendor.golang.org.x.net.idna (>= 1.23.1.3)
NuGet packages (9)
Showing the top 5 NuGet packages that depend on go.net.http:
| Package | Downloads |
|---|---|
|
go.net.http.cgi
net.http.cgi (net9.0 - Release) -- C# project converted from Go source |
|
|
go.net.http.pprof
net.http.pprof (net9.0 - Release) -- C# project converted from Go source |
|
|
go.net.rpc
net.rpc (net9.0 - Release) -- C# project converted from Go source |
|
|
go.net.http.fcgi
net.http.fcgi (net9.0 - Release) -- C# project converted from Go source |
|
|
go.net.http.httputil
net.http.httputil (net9.0 - Release) -- C# project converted from Go source |
GitHub repositories
This package is not used by any popular GitHub repositories.