LoginSignup
3
3

More than 5 years have passed since last update.

OS X 上で libcurl を使って HTTP 通信

Last updated at Posted at 2012-11-01

C, C++ がほとんどわからないのですが・・・。

  1. まずプロジェクトを作ります。Xcode で News -> Project -> OS X -> Command Line Tool -> C++
  2. Project -> Build Phases -> Link Binary With Libraries で libcurl.dylib を追加。

curl_easy_perform() で取得したページの内容は、CURLOPT_WRITEFUNCTION で指定したコールバックで処理できるようです。

main.cpp
#include <iostream>
#include <curl/curl.h>

size_t onReceive(char *ptr, size_t size, size_t nmemb, void *userdata)
{
    char result[nmemb];
    memcpy(result, ptr, size * nmemb);
    std::cout << result << std::endl;
    return size * nmemb;
}

int main(int argc, const char * argv[])
{
    CURL *curl = curl_easy_init();
    if (!curl) {
        std::cerr << "Failed to init curl." << std::endl;
        curl_easy_cleanup(curl);
        return 1;
    }
    curl_easy_setopt(curl, CURLOPT_URL, "http://curl.haxx.se/");
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, onReceive);
    CURLcode 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 1;
    }

    curl_easy_cleanup(curl);    
    return 0;
}

参考
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3