问题标签 [go-http]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2185 浏览

http - 使用 http 劫持者有什么好处

Go http pkg 提供了一个Hijacker接口,谁能告诉我什么时候应该使用它。

我检查了评论,在劫持调用让调用者接管连接之后,HTTP 服务器库不会对连接做任何其他事情。

我理解它,因为它用于在一个端口内同时支持 http 请求和通用 tcp 交互。这样对吗?有没有其他好处。

0 投票
1 回答
3187 浏览

go - Go劫持客户端连接

Go 语言 http 连接劫持。

我知道如何在服务器端劫持。 http://golang.org/pkg/net/http/#example_Hijacker

但是有没有办法在客户端劫持它?

0 投票
2 回答
11644 浏览

go - 什么时候在 golang 中使用劫持?

我不明白为什么我们使用劫持,因为我可以直接在响应正文中写一些东西,有人可以解释一下吗?

与此相同:

我很困惑

0 投票
2 回答
484 浏览

http - Golang - 劫持参数

Hijack()http.ResponseWriter实例一起使用时

Hijack() (net.Conn, *bufio.ReadWriter, 错误)

net.Conn从 the和 the读取有什么区别*bufio.ReadWriter

0 投票
1 回答
61 浏览

go - 为什么 Golang 不能下载某些网页?

我想下载 Fantasy Football Data 以在 Go 中进行分析,但是当我尝试从这个 api 页面下载时,我得到一个空响应,即使代码适用于其他网站,例如这个 api 页面

最小复制,输出一个空数组。

相同的网页在 Python 中可以正常下载:

我不认为它与例如Ajax 调用有关,因为在 Chrome 中查看网络请求不会显示任何超出页面加载本身的内容

0 投票
1 回答
1275 浏览

go - net.Listen 和 http.ListenAndServe 功能的区别

我是 Go 和网络的新手。我知道 net.Listen 和 http.ListenAndServe 都创建了一个服务器。但是它们的功能有什么区别呢?

0 投票
1 回答
10667 浏览

http - 在同时请求时拨打 tcp I/O 超时

我正在用 Go 构建一个工具,它需要向许多不同的服务器同时发出大量 HTTP 请求。我在 Python 中的初始原型可以同时处理数百个请求。

但是,我发现在 Go 中Get http://www.google.com: dial tcp 216.58.205.228:80: i/o timeout,如果同时请求的数量超过 ~ 30-40,这几乎总是会导致 a for some 。

我已经在 macOS、openSUSE、不同的硬件、不同的网络和不同的域列表上进行了测试,并且按照其他 Stackoverflow 答案中的描述更改 DNS 服务器也不起作用。

有趣的是,失败的请求甚至不会产生数据包,这在使用 Wireshark 进行检查时可以看出。

有什么我做错了还是 Go 中的错误?

最低可重现程序如下:

Two particular error messages are happening, a net.DNSError that does not make any sense and a non-descript poll.TimeoutError:

Update:

Running the requests with a seperate http.Client as well as http.Transport and net.Dialer does not make any difference as can be seen when running code from this playground.

0 投票
2 回答
510 浏览

go - “http.FileServer(http.Dir...))”不能在单独的包中工作

目录树:

这有效:

但这会返回404 page not found

main.go:

应用程序.go:

终端打印STARTHTTP - CHECK 01,因此StartHttp()调用了该函数,并且终端要求允许传入网络连接,因此 http 服务器似乎正在侦听该端口。

是否有某种类型的上下文没有传递给另一个包?

0 投票
1 回答
99 浏览

go - web.Request 结构的字段状态未在 Golang 中正确克隆

在尝试设置两种不同web.Request的状态以在某些测试用例中使用时,一种没有任何标题,另一种有,我遇到了问题:

设置

我创建fakeRequestfakeRequestNoHeaders因此:

理智测试

我当然希望如此fakeRequest.Header != fakeRequestNoHeaders.Header。我写了那个测试:

测试结果

它失败。

为什么会这样,我怎样才能实现我正在尝试的目标?

更新:我找到了罪魁祸首:

http.Request由返回的基础httptest.NewRequest实际上是一个指针。Header简直就是属于那个Request。现在问题归结为“如何深度复制那个Request”。

0 投票
2 回答
6665 浏览

go - 如何通过 Go 的 MaxBytesReader 确定我是否已达到大小限制

我是 Go 新手,使用 Mux 接受 HTTP POST 数据。我想使用MaxBytesReader来确保客户端不会压倒我的服务器。根据代码,有一个requestBodyLimit布尔值指示是否已达到该限制。

我的问题是:使用 MaxBytesReader 时,如何确定在处理请求时我是否实际达到了最大值?

这是我的代码:

我怎样才能:

  • 确定我已达到最大 POST 限制(或有权访问requestBodyLimit

  • 我的代码是否能够在这种情况下分支?