Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <curl/curl.h>
- #define END_POINT "http://twitpic.com/api/upload"
- #define EXPECT_ARGS 4
- size_t write_data(void *buffer, size_t size, size_t nmemb, void* userp)
- {
- std::stringstream strmResponse;
- size_t nReal = size * nmemb;
- strmResponse << std::string((char*)buffer, size*nmemb);
- std::string sLine("");
- while (getline(strmResponse, sLine)) {
- std::cout << sLine.c_str() << std::endl;
- }
- return nReal;
- }
- int main (int argc, char * const argv[]) {
- int result = 0;
- CURL* hCurl = NULL;
- CURLcode hResult;
- std::string sUser("");
- std::string sPass("");
- std::string sFileName("");
- //Curl for form data
- struct curl_httppost *post = NULL;
- struct curl_httppost *last = NULL;
- try{
- if(argc < EXPECT_ARGS) {
- std::cout << "Usage twitpic_upload twitterUserName twiiterPassword fileName" << std::endl;
- throw false;
- }
- //Get the require params from command line args
- sUser = argv[1];
- sPass = argv[2];
- sFileName = argv[3];
- //Initialize curl, just don't let easy_init to do it for you
- curl_global_init(CURL_GLOBAL_ALL);
- //Handle to the curl
- hCurl = curl_easy_init();
- if(NULL == hCurl) {
- throw false;
- }
- //Construct the form
- curl_formadd(&post, &last, CURLFORM_COPYNAME, "username", CURLFORM_COPYCONTENTS, sUser.c_str(), CURLFORM_END);
- curl_formadd(&post, &last, CURLFORM_COPYNAME, "password", CURLFORM_COPYCONTENTS, sPass.c_str(), CURLFORM_END);
- curl_formadd(&post, &last, CURLFORM_COPYNAME, "media", CURLFORM_FILE, sFileName.c_str(), CURLFORM_END);
- //Specify the API Endpoint
- hResult = curl_easy_setopt(hCurl,CURLOPT_URL, END_POINT);
- //Specify the HTTP Method
- hResult = curl_easy_setopt(hCurl, CURLOPT_HTTPPOST, post);
- //Post Away !!!
- hResult = curl_easy_perform(hCurl);
- if(hResult != CURLE_OK){
- std::cout << "Cannot find the twitpic site " << std::endl;
- throw false;
- }
- }
- catch (...) {
- result = -1;
- }
- curl_formfree(post);
- curl_easy_cleanup(hCurl);
- curl_global_cleanup();
- system("PAUSE");
- return result;
- }
- // Glauco486 twitpic
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement