Skip to content

brinkqiang/dmcurl

Repository files navigation

dmcurl

Copyright (c) 2013-2018 brinkqiang ([email protected])

dmcurl GitHub

Build status

Linux Mac Windows
lin-badge mac-badge win-badge

Intro

dmcurl curl version: 7.61.0 curlpp version: 0.81

#include <sstream>

#include <cstdlib>
#include <cstdio>
#include <cstring>

#include <dmos.h>

#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>
#include <curlpp/Exception.hpp>

int main(int argc, char *argv[])
{
  if (argc != 3)
  {
    std::cerr << "Example 2: Missing argument" << std::endl
              << "Example 2: Usage: example02 url string-to-send"
              << std::endl;
    return EXIT_FAILURE;
  }
  char *url = argv[1];

  std::istringstream myStream(argv[2]);
  int size = myStream.str().size();

  char buf[50];
  try
  {
    curlpp::Cleanup cleaner;
    curlpp::Easy request;

    std::list<std::string> headers;
    headers.push_back("Content-Type: text/*");
    sprintf(buf, "Content-Length: %d", size);
    headers.push_back(buf);

    using namespace curlpp::Options;
    request.setOpt(new Verbose(true));
    request.setOpt(new ReadStream(&myStream));
    request.setOpt(new InfileSize(size));
    request.setOpt(new Upload(true));
    request.setOpt(new HttpHeader(headers));
    request.setOpt(new Url(url));

    request.perform();
  }
  catch (curlpp::LogicError &e)
  {
    std::cout << e.what() << std::endl;
  }
  catch (curlpp::RuntimeError &e)
  {
    std::cout << e.what() << std::endl;
  }

  return 0;
}

Contacts

Thanks