【发布时间】:2019-03-25 01:36:26
【问题描述】:
我正在尝试通过 Go 客户端进行身份验证。这是我到目前为止所做的事情
func main() {
servAddr := "192.168.7.13:443"
tcpAddr, err := net.ResolveTCPAddr("tcp", servAddr)
if err != nil {
fmt.Println("ResolveTCPAddr failed:", err.Error())
os.Exit(1)
}
conn, err := net.DialTCP("tcp", nil, tcpAddr)
if err != nil {
fmt.Println("Dial failed:", err.Error())
os.Exit(1)
}
_, err = conn.Write([]byte(postReq))
if err != nil {
fmt.Println("Write to server failed:", err.Error())
os.Exit(1)
}
fmt.Println(postReq)
reply := make([]byte, 1024)
_, err = conn.Read(reply)
if err != nil {
fmt.Println("Write to server failed:", err.Error())
os.Exit(1)
}
fmt.Println("reply from server=", string(reply))
conn.Close()
}
这是我写给连接的消息:
POST /ManagementServer/ServerCommandService.svc HTTP/1.1 主机: 192.xxx.xx.xx 内容类型:text/xml; charset=utf-8 授权:基本 {username:password in base64} 内容长度:405 SOAPAction:"http://videoos.net/2/XProtectCSServerCommand/IServerCommandService/Login" 连接:保持活动 190fc316-6412-41c4-8a9c-d468cc7bee9d
在此之后,我希望得到一个身份验证令牌,但我得到的是一个
> Write to server failed: read tcp server-ip:port->server-ip:443:
> read: connection reset by peer
我做错了什么? 仅供参考,我在 python 中使用相同的消息,并且通过套接字我可以获得令牌。有人可以帮我在 Go lang 中做同样的事情吗?谢谢
【问题讨论】: