如何使用 Nim 的 httpclient 模块进行身份验证以检索 HTML?

How do I authenticate, using Nim's httpclient module to retrieve HTML?

我是初学者,我想编写一个 Nim 应用程序来处理来自内部网站的一些数据。 访问此站点需要基本身份验证(用户名、密码)。

有效的Python解决方案是:

response = requests.get('https://internal:PORT/page',
                        auth=('user', 'passwd'),
                        verify=False) # this is vital

基于关于 httpclient 和模块源代码的 nim 文档,其中指出可以使用代理作为任何函数的参数,我一直在尝试以下几行:

var 
  client = newHttpClient()
  prox = newProxy("https://internal:PORT/page", "user:passwd")

let response = client.getContent(prox) # Error: type mismatch

解决方案可能非常明显,但我没有想法 如何认证。

如果有人能提供帮助,我们将不胜感激!

基本身份验证只是一个 "Authorization" header,值为 "Basic " + base64(用户名 +“:”+ 密码)。在 nim 中等效:

import httpclient, base64
var
    client = newHttpClient()
var username = ...
var password = ...
client.headers["Authorization"] = "Basic " & base64.encode(username & ":" & password)
# ... send request with the client