使用 libcurl - 摘要身份验证执行 HTTP POST,使用curl_easy_send\curl_easy_recv
我正在尝试编写一个简单的程序,它使用 libcurl 使用摘要身份验证执行 HTTP POST。
当我设置要使用 CURLOPT_POSTFIELDS
和 CURLOPT_POSTFIELDSIZE
进行适当的 curlopt_easy_setopt
调用来发送的 XML 缓冲区,然后调用 curl_easy_perform
。
但是,当我在将 CURLOPT_CONNECT_ONLY
设置为 1,然后使用 curl_easy_send
后尝试连接时,返回代码(用于发送调用)为 CURLE_UNSUPPORTED_PROTOCOL
。
(当然,用户名、密码和摘要认证方案之前都设置成功)。
使用嗅探器,很明显可以看到根本没有执行摘要协商。
我如何仍将 curl_easy_send
\ curl_easy_recv
与 CURLOPT_CONNECT_ONLY
一起使用,但让 libcurl 执行摘要协商?
提前致谢。
I'm trying to write a simple program which uses libcurl to perform HTTP POST using digest authentication.
It works fine when I'm setting the XML buffer that I want to send using appropriate curlopt_easy_setopt
calls with CURLOPT_POSTFIELDS
and CURLOPT_POSTFIELDSIZE
and then calling curl_easy_perform
.
However, when I try to connect after setting CURLOPT_CONNECT_ONLY
to 1, and then using curl_easy_send
- the return code (for the send call) is CURLE_UNSUPPORTED_PROTOCOL
.
(Of course, the username, password and digest authentication scheme are set successfully before).
Using a sniffer, it is obvious to see that the digest negotiation is not performed at all.
How can I still use curl_easy_send
\ curl_easy_recv
with CURLOPT_CONNECT_ONLY
, but let libcurl to perform the digest negotiation?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,这毕竟是不可能的。
curl_easy_send
和curl_easy_recv
用于实现自定义协议。因此,我认为正在发生的情况是 libcurl 为 curl_easy_perform 执行的正常 HTTP 协议处理根本没有完成,因此没有可用的摘要 \ NTLM\ GSS 协商。
希望它能帮助某人。
Well, this is impossible after all.
curl_easy_send
andcurl_easy_recv
are intended for implementing custom protocols.Thus, what I think is happening is that the normal HTTP protocol handling that libcurl would be doing for
curl_easy_perform
is not being done at all, so there is no digest\ NTLM\ GSS negotiation available.Hope that it will help someone.