我试图在我的项目中使用libcurl.net在SSL上执行HTTP请求。(System.Net类不支持服务器名称扩展,我使用的是Windows )
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(),但没有结果。
谢谢
发布于 2011-05-05 12:09:23
您是否将CPU平台设置为与所使用的库相匹配?例如,如果您有x86 DLL或x86 DLL的x64,请使用x64。(即使这不是你的问题,而且你只有一个32位的系统,你的应用程序将在Win64上吹响否则)
我还没有使用它,但我确实找到了一个现有的libcurl包装器,也许这可以帮助您:http://sourceforge.net/projects/libcurl-net/
https://stackoverflow.com/questions/5897239
复制相似问题