libcurlで画像をHTTP-GET

curlppがうまくいかなかったのでlibcurlの方を使おう


参考:http://ja.doukaku.org/41/nested/

result.jpgとしてファイルに保存する
curl.hはmacportscurlインストールしたら入った?気がする
ubuntuでは

sudo apt-get install libcurl4-gnutls-dev

でインストールできた


get.cpp

#include <string>
#include <iostream>
#include <curl/curl.h>

using namespace std;

int main(int argc, char **argv){
  if(argc < 2){
    cout << "./get http://example.com/image.jpg" << endl;
    return 1;
  }
  
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if (!curl) {
    cerr << "couldn't init curl" << endl;
    return 1;
  }

  FILE *fp = fopen("result.jpg", "w+");
  curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
  curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
  res = curl_easy_perform(curl);
  if(res != 0){
    cout << "error!" << endl;
  }
  fclose(fp);
  curl_easy_cleanup(curl);
  return 0;
}


Makefile

# Mac用Makefile
SRC = get.cpp
DST = get

prefix=/opt/local
INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib

CURL_LIBS= -lcurl

all:
	g++ -O $(SRC) -o $(DST) -I$(INCPATH)/curl -L. -L$(LIBPATH) $(CURL_LIBS)