问题标签 [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 回答
807 浏览

go - 在 Go 中显示分页小部件

我在 Go 中使用 HTML 模板来呈现分页小部件。我正在尝试从这里遵循一个示例:https ://www.solodev.com/blog/web-design/adding-pagination-to-your-website.stml

到目前为止,这是我的代码:

我想通过仅在活动页面变为PaginationSize. 例如,当显示的分页显示

如果用户点击 2,我想看看

但我当前的代码显示

页面超过 6 后,页面列表应如下所示

包装在这个分页视图中的数据可能在数据库中,所以如果可能的话,我也很感激关于如何使这个工作与数据库一起工作的提示。

谢谢。

0 投票
1 回答
3685 浏览

go - tls:HTTP 请求没有重新协商错误

我正在尝试在 Go 中发出一个简单的 HTTP 请求,在直接按照指南进行操作后,我不断收到相同的错误:

local error: tls: no renegotiation

我不太明白如何解释这个?我知道这在服务器上不是问题,因为当我从 python 调用相同的请求时它返回正常。这是我的代码:

0 投票
2 回答
58 浏览

go - goroutine different behaviour for statement execution and function execution

Can anyone explain the difference between the following two calls regarding the goroutines?

Method 1

This stopes after executing the "Starting srv"

Method 2

This executes both "Starting srv" and "Starting intSrv"

Why the behaviour is different?

0 投票
2 回答
4141 浏览

go - TLS:使用 GoLang tls 客户端的握手失败

我正在尝试使用 golang http/tsl 客户端通过 SSL/TLS 连接到服务器,这会导致“Handshake Faliure(40)”错误,但由于某种原因,这个相同的端点适用于 CURL 命令。经过一番调试,我收集了以下数据。

Openssl 命令输出Wireshark 数据包

客户你好客户你好 2服务器你好 更改密码规范 握手失败

使用上述功能的代码

0 投票
1 回答
136 浏览

go - 当请求到达根目录时,从不同的目录提供文件

当客户端请求进入根目录时,我在从子目录中提供某些文件时遇到了一些麻烦。

gorilla/mux用来提供文件。下面是我的代码:

创建文件系统的代码在上面的initFileServer函数中。

目前,它在用户访问时按预期提供静态文件localhost:3000/public/。但是,我希望在用户转到localhost:3000/.

我尝试将 ParsePrefix 函数调用更改为,r.PathPrefix("/").Handler(http.StripPrefix("/public/", fs))但它不起作用。任何建议将不胜感激......我对 Go 很陌生。

0 投票
2 回答
402 浏览

go - 传入请求:带有自定义类型字段的上下文

我正在使用 go 编写一个或多或少简单的 Web 应用程序,它提供了一个 rest api。当请求进来时,我想将用户的 id 临时存储在请求上下文中,它是 api 令牌的一部分。在阅读 了一些 文章文档之后,我仍然很困惑如何确保使用 附加到上下文的值context.WithValue()可以在没有类型断言的情况下使用,而是使用某种结构。

到目前为止,这是我想出的:

我想知道如何在处理程序中访问请求上下文的SetUserID()UserID()函数,或者是否有替代的类似方法。

0 投票
0 回答
2199 浏览

go - 相当于 Python 的 requests.Session 以发出许多具有相同基本身份验证的请求?

考虑使用基本身份验证在 Go 中发出 HTTP 请求的示例:

请注意,这SetBasicAuth是 an 的一个方法*http.Request,所以如果我想发出很多请求,我必须在每个请求上调用这个方法。

requests.Session在 Python 中,您可以在此示例中定义类似(来自https://requests.readthedocs.io/en/master/user/advanced/#session-objects):

是否有一种惯用的方式来定义requests.SessionGo 中的等价物(最好使用标准库)?我能想到的就是用自己的Do()方法定义一个自定义客户端结构:

并在上面的脚本中调用它

这是避免多次调用的惯用方法SetBasicAuth()吗?

0 投票
2 回答
3528 浏览

go - HandleFunc 中的 http 主机和端口信息

我正在尝试启动多个 http 服务器侦听同一包中的不同端口。在我的测试 HandleFunc 函数中,我需要打印我们的主机和服务请求的 http 服务器的信息端口。我该怎么做?

这是我的示例代码:

0 投票
1 回答
87 浏览

go - 如何模拟多个 url 以返回夹具内容?

我正在编写某种递归解析器。最简单的形式是:

  1. 取自all linksfirst link页面正文
  2. 对每个链接重复第一步

所以现在我想测试它。问题是我想不出模拟所有这些页面的最佳方法。我使用http包,并且我已经使用httptest包(通过httptest.NewServer)编写了一些测试。但现在对我的任务似乎没有用。我想最好的方法是使用http.Client自定义Transport结构,但它有很多样板和额外的臭代码。有没有更优雅的方法来做到这一点?

0 投票
1 回答
604 浏览

go - 为多个端点设置 http 客户端?

我重用 http 客户端连接来对单个端点进行外部调用。该程序的摘录如下所示:

我现在需要建立与通过队列消息接收的不同端点/凭据的客户端连接。

我预见的问题是我不能简单地修改AppCon新的端点详细信息,因为返回了一个指向的指针MyApp,从而导致重置c. 这可能会影响对非预期端点进行 HTTP 调用的 goroutine。为了使事情变得不简单,该程序并不意味着知道端点(我正在考虑使用switch语句),而是通过队列消息接收它需要的东西。

鉴于我提出的问题是正确的,有没有关于如何解决它的建议?

编辑 1

根据提供的反馈,我倾向于相信这将解决我的问题:

  1. 删除使用 Singleton 的MyApp
  2. 解耦 http 客户端,MyApp使其可以重用