我正在尝试在我的项目中使用 libcurl.net 通过 SSL 执行 HTTP 请求。(System.Net 类不支持服务器名称扩展,我使用的是 Windows XP)
SSLContextFunction 中的代码:
public CURLcode OnSSLContext(SSLContext ctx, Object extraData)
{
IntPtr ssl = SSL_new(ctx.Context);
SSL_set_tlsext_host_name(ssl, "hostname");
return CURLcode.CURLE_OK;
}
[DllImport("ssleay32.dll")]
internal static extern IntPtr SSL_new(IntPtr ctx);
[DllImport("ssleay32.dll")]
internal static extern void SSL_set_tlsext_host_name(IntPtr ssl, string message);
这会在调用 SSL_new 时引发错误:“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”
另外,尝试调用 OpenSSL 的方法 SSL_library_init() ,但没有结果。
谢谢