我尝试从 Microsoft Dynamics Nav WebService 获取一些数据。此服务使用 NTML 身份验证。
如果我在浏览器中打开 web 服务 url 并使用给定的凭据,一切正常。
为了设置 WebService 客户端的环境,我使用命令行检查一切是否正常,在特定点上,我无法进行身份验证。
这就是我正在使用的命令:
curl --ntlm -u "DOMAIN\USERNAME" -k -v "http://hostname:port/instance/Odata/Company('CompanyName')/Customer"
该命令将提示输入密码。我复制密码,一切正常。
但是当我使用这个命令时,已经包含密码,它停止工作并且身份验证失败:
curl --ntlm -u "DOMAIN\USERNAME:PASSWORD" -k -v "http://hostname:port/instance/Odata/Company('CompanyName')/Customer"
密码包含一些特殊字符,所以我尝试使用百分比编码,但完全没有效果。
研究这类问题非常困难。搜索 curl + ntlm 身份验证问题会提供很多结果,但与此类特定问题无关。
有没有人已经有过这种问题的经验?