私は最近CURLについてもっと学びたいと思っていましたが、ついにテストプロジェクトの静的ライブラリとしてCURLを適切にコンパイルしてインストールすることができました。最終的には、フォームの投稿などについて学習します。
からページコンテンツを接続して印刷することに成功しましたhttp://www.google.se
。
安全なhttpページhttps://www.google.se
に接続すると、ページコンテンツとして空の文字列が表示されます。
オプションに関する情報を取得するためにこれを使用しています。
私はこの答えから物事を試しましたが、うまくいかなかったか、間違っていました。
また、verifypeerとverifyhostをオフにしてみましたが(本当に安全なソリューションを実践したいのですが)、どちらも機能しませんでした。
それを機能させるために何をする必要がありますか?私は何か間違ったことをしていますか?
これがテストコードです
#include <iostream>
#include <string>
#include <curl/curl.h>
using namespace std;
static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp){
((string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main(){
CURL *curl;
CURLcode res;
string readBuffer;
curl = curl_easy_init();
if(curl){
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.se");
//curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, TRUE);
//Doesn't seem to work
curl_easy_setopt(curl, CURLOPT_CAINFO, "path\\cacert.pem");
//Neither does this
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
cout<<readBuffer<<endl;
system("pause");
}
return 0;
}
アップデート
だから私はcurlからエラーメッセージを受け取りました、Unsupported protocol
それはSSLが機能しないときにそれが言うことだと私は推測しています。そのため、SSLを使用して再コンパイルする必要がありました(これは、初めて行ったと思ったので奇妙です)が...
もうすぐあきらめます。はぁ。なんらかの理由で
NMAKE: fatal error U1077 nasmw
、SSLを作成するときにエラーが発生しましたが、nasmに正しい%PATH%を明確に指定しました。私は手紙の手順に従った。
そこで、 libcurlタイプのcurlバイナリを使用してみましたが、ライブラリファイルに慣れていないため、VC++で正しくリンクする方法がわかりません。
テストプロジェクトをコンパイルしようとすると、これらのリンカーエラーが発生し続けます。
1>main.obj : error LNK2019: unresolved external symbol _curl_easy_cleanup referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _curl_easy_strerror referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _curl_easy_perform referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _curl_easy_setopt referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol _curl_easy_init referenced in function _main
とてもイライラしました...なぜそれがそれほど複雑でなければならないのか理解できたらいいのにと思います。
もうライブラリを使いたい!
アップデート2
OK ... SSLを使用してcurlライブラリをコンパイルでき、レポートCURL_VERSION_SSL
が有効になっています
curl_version_info_data * vinfo = curl_version_info(CURLVERSION_NOW);
if(vinfo->features & CURL_VERSION_SSL){
cout<<"CURL: SSL enabled"<<endl;
}else{
cout<<"CURL: SSL not enabled"<<endl;
}
//Prints out "CURL: SSL enabled"
しかし、それでも同じエラーメッセージが表示されますUnsupported protocol
。何が間違っているのかわかりません。