curl - NTLM 和 Golang

标签 curl go ntlm

我最近学习了 Go,并且正在试验 net/http 库。我一直在尝试使用 http.SetBasicAuth 函数对网站进行身份验证,但它似乎从来没有奏效。它适用于 cURL 但不适用于 Go。我知道这与 NTLM 有关,但我不知道如何解决这个问题

curl :

curl -v "http://server_that_im_trying_to_auth_with"--ntlm -u user:pass

开始:

 req, _ := http.NewRequest("GET", "url", nil)
 req.SetBasicAuth(user, pass)
 resp, _ := http.DefaultClient.Do(req)
 body, _ := ioutil.ReadAll(resp.Body)

主体不断返回站点 401 页面。

最佳答案

NTLM 身份验证和基本身份验证不同。 NTLM 是一个比 user:password string in header 更复杂的协议(protocol)。
如果您想从 Golang 代码发出请求以进行身份​​验证,您应该使用现有库之一,例如:go-ntlmssp

您还可以阅读有关 NTLM 协议(protocol)本身的更多信息 here

关于curl - NTLM 和 Golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45387108/

相关文章:

javascript - 如何在不获取 %22 的情况下将 CURL 请求转换为 AJAX 调用?

php - PPA : 'ppa:ondrej/php5-5.6' FORBIDDEN 403

go - 为什么golang自定义错误变量有多种类型

cookies - 在 golang 中解析 cookie 字符串

curl - Docker容器:容器之间的 curl 不起作用

php - 执行 HTTP GET 请求而不等待响应

java - golang 服务器向 Android 发送字节数组

c++ - URLDownloadToFile 和身份验证

java - 使用 AXIS2 1.4 进行 NTLM v.2 身份验证

c# - 我可以避免http质询响应吗?