libcurl和openssl例子
时间: 2023-11-09 18:48:01 浏览: 261
以下是使用libcurl和openssl库进行https请求的例子:
```c
#include <stdio.h>
#include <curl/curl.h>
#include <openssl/ssl.h>
#define URL "https://www.example.com"
int main(void)
{
CURL *curl;
CURLcode res;
/* 初始化libcurl */
curl = curl_easy_init();
if(curl) {
/* 设置要请求的URL */
curl_easy_setopt(curl, CURLOPT_URL, URL);
/* 开启SSL */
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L);
/* 设置CA证书路径 */
curl_easy_setopt(curl, CURLOPT_CAINFO, "/path/to/ca.pem");
/* 设置证书路径和私钥路径 */
curl_easy_setopt(curl, CURLOPT_SSLCERT, "/path/to/client.crt");
curl_easy_setopt(curl, CURLOPT_SSLKEY, "/path/to/client.key");
/* 发送请求并获取响应 */
res = curl_easy_perform(curl);
/* 检查请求是否成功 */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* 清理资源 */
curl_easy_cleanup(curl);
}
return 0;
}
```
注意,上面的代码只是一个简单的例子,实际使用时需要根据具体情况进行修改。
需要注意的是,以上代码中使用的是PEM格式的证书和私钥文件,如果您的证书和私钥文件是DER格式的,则需要使用openssl库将其转换为PEM格式,具体方法可以参考openssl库的文档。
阅读全文