• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ curl_formadd函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中curl_formadd函数的典型用法代码示例。如果您正苦于以下问题:C++ curl_formadd函数的具体用法?C++ curl_formadd怎么用?C++ curl_formadd使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了curl_formadd函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: backend_log

CURLcode backend_log(char * middleware, char * uuid, struct timeval tv, float value) {
	CURL *curl;
	CURLcode res;

	char url[255], useragent[255], post[255];

	sprintf(url, "%s/data/%s.json", middleware, uuid); /* build url */
	sprintf(useragent, "vzlogger/%s (%s)", VZ_VERSION, curl_version());
	sprintf(post, "?timestamp=%lu%lu&value=%f", tv.tv_sec, tv.tv_usec, value);
 
	curl_global_init(CURL_GLOBAL_ALL);
 
	curl_formadd(&formpost,
		&lastptr,
		CURLFORM_COPYNAME, "value",
		CURLFORM_PTRCONTENTS , value_str,
		CURLFORM_END);
		
	curl_formadd(&formpost,
		&lastptr,
		CURLFORM_COPYNAME, "timestamp",
		CURLFORM_PTRCONTENTS , &timestamp,
		CURLFORM_END);
 
	curl = curl_easy_init();
	
	if (curl) {
		/* what URL that receives this POST */ 
		curl_easy_setopt(curl, CURLOPT_URL, url);
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
		curl_easy_setopt(curl, CURLOPT_USERAGENT, useragent);
		curl_easy_setopt(curl, CURLOPT_VERBOSE, (int) opt.verbose);

    		res = curl_easy_perform(curl);
    
		curl_easy_cleanup(curl); /* always cleanup */ 
		curl_formfree(formpost); /* then cleanup the formpost chain */
		
		return res;
	}
	
	return -1;
}
开发者ID:ljmarkus,项目名称:volkszaehler.org,代码行数:43,代码来源:main.c


示例2: ov_curl_set_string

/* CURL Add in a string parameter */
int ov_curl_set_string(void *ov_msg_handle, const char *name, char *val)
{
	ov_msg_t *ov_msg = (ov_msg_t*) ov_msg_handle;
	assert(ov_msg->magic_no == OV_MSG_MAGIC_NO);

	printf("SET MULTIPART ENTRY: NAME = '%s' VAL = '%s'\n", name, val);

	curl_formadd(&ov_msg->formpost, &ov_msg->lastptr, CURLFORM_COPYNAME, name, CURLFORM_COPYCONTENTS, val, CURLFORM_END);
	return 0;
}
开发者ID:Openversa,项目名称:openversa_C_v1,代码行数:11,代码来源:ov_curl.c


示例3: formadd_files

static int formadd_files(VALUE data_key, VALUE data_value, VALUE self) {
  struct curl_state *state = get_curl_state(self);
  VALUE name = rb_obj_as_string(data_key);
  VALUE value = rb_obj_as_string(data_value);

  curl_formadd(&state->post, &state->last, CURLFORM_PTRNAME, RSTRING_PTR(name),
                CURLFORM_FILE, RSTRING_PTR(value), CURLFORM_END);

  return 0;
}
开发者ID:mmoll,项目名称:patron,代码行数:10,代码来源:session_ext.c


示例4: throw

  bool HTTP::POSTFile(std::string url, std::string filePath, std::string& output) throw (InputException) {
    char errorBuffer[CURL_ERROR_SIZE];
    std::string http_code;
    std::string redirect = url;
    char *ct = NULL;

    // wait for timeout
    wait();

    // error detection
    CURLcode result;

    //open connection
    CURL * curlPost = curl_easy_init();

    struct curl_httppost *post = NULL;
    struct curl_httppost *last = NULL;

    if (curlPost) {
      curl_formadd(&post, &last, CURLFORM_COPYNAME, "file", CURLFORM_FILE, filePath.c_str(), CURLFORM_END);
      //Specify the API Endpoint
      curl_easy_setopt(curlPost, CURLOPT_URL, url.c_str());
      //Specify the HTTP Method
      result = curl_easy_setopt(curlPost, CURLOPT_HTTPPOST, post);

      //      curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
      //      curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
      //      curl_easy_setopt(curl, CURLOPT_HEADER, 1);
      //      /**
      //       * Post Redirection - if we cant set this, the next redir is GET method
      //      0 -> do not set any behavior
      //      1 -> follow redirect with the same type of request only for 301 redirects.
      //      2 -> follow redirect with the same type of request only for 302 redirects.
      //      3 -> follow redirect with the same type of request both for 301 and 302 redirects.*/
      //            curl_easy_setopt(curl, CURLOPT_POSTREDIR, 3);
      //
      curl_easy_setopt(curlPost, CURLOPT_WRITEFUNCTION, &writeText);
      curl_easy_setopt(curlPost, CURLOPT_WRITEDATA, &output);
      //      curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);

      // send request
      result = curl_easy_perform(curlPost);

      // clean      
      curl_easy_cleanup(curlPost);

      // exception on request error
      if (result != CURLE_OK) {
        InputException e("HTTP POST File: Curl Error: " + std::string(errorBuffer));
        throw e;
      }
    }
    curl_formfree(post);
    return true;
  }
开发者ID:tomwagner,项目名称:IntelligentMPDClient,代码行数:55,代码来源:http.cpp


示例5: curlization

int curlization(char *uri) {

 int ret=0;
 buf->size=0;
 curl_easy_setopt(curl, CURLOPT_USERAGENT, UserAgent);
 curl_easy_setopt(curl, CURLOPT_URL, uri);

#ifdef HEADFUNC
 bufhead->size=0;
 curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, head_callback);
#else
 curl_easy_setopt(curl, CURLOPT_HEADER, 1);
#endif  
 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buf);


//можно так
#ifdef FORMPOST
 curl_formadd(&post, &last, CURLFORM_COPYNAME, "hash",CURLFORM_PTRCONTENTS, "aaaaaaaaaaaa", CURLFORM_END);
 curl_formadd(&post, &last, CURLFORM_COPYNAME, "hash2",CURLFORM_PTRCONTENTS, "bbbbbbbbbbbbb", CURLFORM_END);
 curl_formadd(&post, &last, CURLFORM_COPYNAME, "hash3",CURLFORM_PTRCONTENTS, "cccccccccccccccc", CURLFORM_END);
 curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
#else
 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, Post);
 curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, sizeof(Post)-1);
#endif

 if (curl_easy_perform(curl) != CURLE_OK) {
      fprintf(stderr, "%s: %s\n\n", uri, (error[0]) ? error : "Unknown Error");
      ret=-1;
  }


  curl_easy_cleanup(curl);

#ifdef FORMPOST
  curl_formfree(post);
#endif

 return ret;
}
开发者ID:carriercomm,项目名称:kalloc.github.com,代码行数:42,代码来源:post_http.c


示例6: curlUpload

static optional<string> curlUpload(const char* path, const char* url) {

  struct curl_httppost *formpost=NULL;
  struct curl_httppost *lastptr=NULL;

  curl_global_init(CURL_GLOBAL_ALL);

  curl_formadd(&formpost,
      &lastptr,
      CURLFORM_COPYNAME, "fileToUpload",
      CURLFORM_FILE, path,
      CURLFORM_END);

  curl_formadd(&formpost,
      &lastptr,
      CURLFORM_COPYNAME, "submit",
      CURLFORM_COPYCONTENTS, "send",
      CURLFORM_END);

  if(CURL* curl = curl_easy_init()) {
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, dataFun);
    string ret;
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ret);
    /* what URL that receives this POST */ 
    curl_easy_setopt(curl, CURLOPT_URL, escapeUrl(url).c_str());
    curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
    // Internal CURL progressmeter must be disabled if we provide our own callback
    curl_easy_setopt(curl, CURLOPT_NOPROGRESS, false);
    // Install the callback function
    curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progressFunction);
    CURLcode res = curl_easy_perform(curl);
    if(res != CURLE_OK)
      ret = string("Upload failed: ") + curl_easy_strerror(res);
    curl_easy_cleanup(curl);
    curl_formfree(formpost);
    if (!ret.empty())
      return ret;
    else
      return none;
  } else
    return string("Failed to initialize libcurl");
}
开发者ID:silidur,项目名称:keeperrl,代码行数:42,代码来源:file_sharing.cpp


示例7: curl_formadd

	void HttpRequest::AddFile(const std::string& name, const std::string& localfilename,
		const std::string& contenttype, const std::string& filename)
	{
		curl_formadd(&m_postargs, &m_postargslast,
			CURLFORM_COPYNAME, name.c_str(),
			CURLFORM_FILE, localfilename.c_str(),
			CURLFORM_CONTENTTYPE, contenttype.c_str(),
			CURLFORM_END);

		m_upload = true;
	}
开发者ID:rogerclark,项目名称:grumble,代码行数:11,代码来源:HttpRequest.cpp


示例8: sendChatAction

	void sendChatAction(int chat_id, string action)
	{
		string URL = BOTAPI + "sendChatAction";
		// ============ convert string to char array =========== // 
		char c[200];
		strncpy(c, URL.c_str(), sizeof(c));
		c[sizeof(c) - 1] = 0;
		
		FILE *fp;
		CURL *curl = init(c, "sendChatAction.json", fp);
		// ============ add fields =========== // 
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "chat_id", CURLFORM_COPYCONTENTS, to_string(chat_id).c_str(), CURLFORM_END);
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "action", CURLFORM_COPYCONTENTS, action.c_str(), CURLFORM_END);
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
		curl_easy_perform(curl);
	    curl_easy_cleanup(curl);
		formpost = NULL;
		lastptr = NULL;
		fclose(fp);
	}
开发者ID:kvip,项目名称:TelegramBotAPIcppInterface,代码行数:20,代码来源:Methods.cpp


示例9: init_curl

void engine::attach(std::string server,
        const std::string& key,
        const std::string& file,
        const std::string& filename,
        int chunk_id,
        int num_chunks,
        report_level s,
        validate_cert v)
{
    init_curl(key, s, v);
    server += "/attachments";
    curl_easy_setopt(m_curl, CURLOPT_URL, server.c_str());
    struct curl_httppost* formpost = NULL;
    struct curl_httppost* lastptr = NULL;
    curl_formadd(&formpost,
            &lastptr,
            CURLFORM_COPYNAME, "Filedata",
            CURLFORM_FILE, file.c_str(),
            CURLFORM_END);
    curl_formadd(&formpost,
            &lastptr,
            CURLFORM_COPYNAME, "name",
            CURLFORM_COPYCONTENTS, filename.c_str(),
            CURLFORM_END);
    curl_formadd(&formpost,
            &lastptr,
            CURLFORM_COPYNAME, "chunk",
            CURLFORM_COPYCONTENTS, base::to_string(chunk_id).c_str(),
            CURLFORM_END);
    curl_formadd(&formpost,
            &lastptr,
            CURLFORM_COPYNAME, "chunks",
            CURLFORM_COPYCONTENTS, base::to_string(num_chunks).c_str(),
            CURLFORM_END);
    curl_form_guard fg(formpost);
    curl_easy_setopt(m_curl, CURLOPT_HTTPPOST, formpost);
    if (s >= NORMAL) {
        io::mout << "Uploading chunk '" << file << "'." << io::endl;
    }
    process_attach_chunk_responce(perform(), s);
}
开发者ID:GrantGatchel,项目名称:liquidfiles_unix,代码行数:41,代码来源:engine.cpp


示例10: setWebhook

	void setWebhook(string url, string certificate)
	{
		string URL = BOTAPI + "setWebhook";
		// ============ convert string to char array =========== // 
		char c[200];
		strncpy(c, URL.c_str(), sizeof(c));
		c[sizeof(c) - 1] = 0;
		
		FILE *fp;
		CURL *curl = init(c, "setWebhook.json", fp);
		// ============ add fields =========== // 
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "url", CURLFORM_COPYCONTENTS, url.c_str(), CURLFORM_END);
		if (certificate != "")
			curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "certificate", CURLFORM_FILE, certificate.c_str(), CURLFORM_END);
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
		curl_easy_perform(curl);
	    curl_easy_cleanup(curl);
		formpost = NULL;
		lastptr = NULL;
		fclose(fp);
	}
开发者ID:kvip,项目名称:TelegramBotAPIcppInterface,代码行数:21,代码来源:Methods.cpp


示例11: getUpdates

	void getUpdates(int offset, int limit, int timeout)
	{
		string URL = BOTAPI + "getUpdates";
		// ============ convert string to char array =========== // 
		char c[200];
		strncpy(c, URL.c_str(), sizeof(c));
		c[sizeof(c) - 1] = 0;
		
		FILE *fp;
		CURL *curl = init(c, "getUpdates.json", fp);
		// ============ add fields =========== // 
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "offset", CURLFORM_COPYCONTENTS, to_string(offset).c_str(), CURLFORM_END);
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "limit", CURLFORM_COPYCONTENTS, to_string(limit).c_str(), CURLFORM_END);
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "timeout", CURLFORM_COPYCONTENTS, to_string(timeout).c_str(), CURLFORM_END);
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
		curl_easy_perform(curl);
	    curl_easy_cleanup(curl);
		formpost = NULL;
		lastptr = NULL;
		fclose(fp);
	}
开发者ID:kvip,项目名称:TelegramBotAPIcppInterface,代码行数:21,代码来源:Methods.cpp


示例12: curl_formadd

void FZHttpPost::AddKeyValuePair(const std::string& key, const std::string& value)
{
   // Add a key-value pair to the POST

   curl_formadd(&formpost,
                &lastptr,
                CURLFORM_COPYNAME, key.data(),
                CURLFORM_COPYCONTENTS, value.data(),
                CURLFORM_END);
   // increment number of key-value pairs in post
   ++fPostPairs;
}
开发者ID:gtortone,项目名称:FzDAQ,代码行数:12,代码来源:FzHttpPost.cpp


示例13: forwardMessage

	void forwardMessage(int chat_id, int from_chat_id, int message_id)
	{
		string URL = BOTAPI + "forwardMessage";
		// ============ convert string to char array =========== // 
		char c[200];
		strncpy(c, URL.c_str(), sizeof(c));
		c[sizeof(c) - 1] = 0;
		
		FILE *fp;
		CURL *curl = init(c, "forwardMessage.json", fp);
		// ============ add fields =========== // 
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "chat_id", CURLFORM_COPYCONTENTS, to_string(chat_id).c_str(), CURLFORM_END);
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "from_chat_id", CURLFORM_COPYCONTENTS, to_string(from_chat_id).c_str(), CURLFORM_END);
		curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "message_id", CURLFORM_COPYCONTENTS, to_string(message_id).c_str(), CURLFORM_END);
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
		curl_easy_perform(curl);
	    curl_easy_cleanup(curl);
		formpost = NULL;
		lastptr = NULL;
		fclose(fp);
	}
开发者ID:kvip,项目名称:TelegramBotAPIcppInterface,代码行数:21,代码来源:Methods.cpp


示例14: curl_formadd

void HttpFormRequest::addBinary(const std::string &key, const std::vector<char> &data) {
    std::cout << "ttpFormRequest::addBinary(): " << data.data() << "\t" << data.size() << std::endl;

    curl_formadd(
        &_formPost,
        &_lastPost,
        CURLFORM_COPYNAME, key.c_str(),
        CURLFORM_BUFFER, key.c_str(),
        CURLFORM_BUFFERPTR, data.data(),
        CURLFORM_BUFFERLENGTH, data.size(),
        CURLFORM_END);
}
开发者ID:qoollo,项目名称:streamcentre-dismantler,代码行数:12,代码来源:HttpFormRequest.cpp


示例15: Qiniu_Io_PutFile

Qiniu_Error Qiniu_Io_PutFile(
	Qiniu_Client* self, Qiniu_Io_PutRet* ret,
	const char* uptoken, const char* key, const char* localFile, Qiniu_Io_PutExtra* extra)
{
	Qiniu_Io_form form;
	Qiniu_Io_form_init(&form, uptoken, key, extra);

	curl_formadd(
		&form.formpost, &form.lastptr, CURLFORM_COPYNAME, "file", CURLFORM_FILE, localFile, CURLFORM_END);

	return Qiniu_Io_call(self, ret, form.formpost);
}
开发者ID:ThatisOK,项目名称:c-sdk,代码行数:12,代码来源:io.c


示例16: curl_easy_setopt

void ResourceHandleManager::setupPOST(ResourceHandle* job)
{
    ResourceHandleInternal* d = job->getInternal();

    curl_easy_setopt(d->m_handle, CURLOPT_POST, TRUE);

    job->request().httpBody()->flatten(d->m_postBytes);
    if (d->m_postBytes.size() != 0) {
        curl_easy_setopt(d->m_handle, CURLOPT_POSTFIELDSIZE, d->m_postBytes.size());
        curl_easy_setopt(d->m_handle, CURLOPT_POSTFIELDS, d->m_postBytes.data());
    }

    Vector<FormDataElement> elements = job->request().httpBody()->elements();
    size_t size = elements.size();
    struct curl_httppost* lastItem = 0;
    struct curl_httppost* post = 0;
    for (size_t i = 0; i < size; i++) {
        if (elements[i].m_type != FormDataElement::encodedFile)
            continue;
        CString cstring = elements[i].m_filename.utf8();
        ASSERT(!d->m_fileName);
        d->m_fileName = strdup(cstring.data());

        // Fill in the file upload field
        curl_formadd(&post, &lastItem, CURLFORM_COPYNAME, "sendfile", CURLFORM_FILE, d->m_fileName, CURLFORM_END);

        // Fill in the filename field
        curl_formadd(&post, &lastItem, CURLFORM_COPYNAME, "filename", CURLFORM_COPYCONTENTS, d->m_fileName, CURLFORM_END);

        // FIXME: We should not add a "submit" field for each file uploaded. Review this code.
        // Fill in the submit field too, even if this is rarely needed
        curl_formadd(&post, &lastItem, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "send", CURLFORM_END);

        // FIXME: should we support more than one file?
        break;
    }

    if (post)
        curl_easy_setopt(d->m_handle, CURLOPT_HTTPPOST, post);
}
开发者ID:cdaffara,项目名称:symbiandump-mw4,代码行数:40,代码来源:ResourceHandleManager.cpp


示例17: uim_curl_post_internal

static void *
uim_curl_post_internal(struct uim_curl_post_args *args)
{
  uim_lisp post_ = args->post;
  uim_lisp post_car_, post_cdr_;
  uim_lisp fetched_str_;
  const char *url = REFER_C_STR(args->url);
  CURL *curl;
  CURLcode res;
  struct curl_memory_struct chunk;
  struct curl_httppost* post_first = NULL;
  struct curl_httppost* post_last = NULL;

  curl = curl_easy_init();

  if(curl == NULL)
    return uim_scm_f();

  memset(&chunk, 0, sizeof(struct curl_memory_struct));

  curl_easy_setopt(curl, CURLOPT_URL, url);
  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, uim_curl_write_func);
  curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);

  for(post_cdr_ = post_;
      !NULLP(post_cdr_);
      post_cdr_ = CDR(post_cdr_)) {
      const char *name, *value;
      post_car_ = CAR(post_cdr_);

      name = REFER_C_STR(CAR(post_car_));
      value = REFER_C_STR(CDR(post_car_));

      curl_formadd(&post_first, &post_last,
		   CURLFORM_COPYNAME, name,
		   CURLFORM_COPYCONTENTS, value,
		   CURLFORM_END);
  }

  curl_easy_setopt(curl, CURLOPT_HTTPPOST, post_first);

  res = uim_curl_perform(curl);

  fetched_str_ = (chunk.str != NULL) ? MAKE_STR(chunk.str) : uim_scm_f();

  curl_easy_cleanup(curl);
  curl_formfree(post_first);
  curl_global_cleanup();
  free(chunk.str);

  return (void *)fetched_str_;
}
开发者ID:NgoHuy,项目名称:uim,代码行数:52,代码来源:curl.c


示例18: send_file_to_server

int send_file_to_server(string path, string id) {

    int http_code;
    CURL *curl;
    CURLcode res;

    struct curl_httppost *formpost=NULL;
    struct curl_httppost *lastptr=NULL;
    struct curl_slist *headerlist=NULL;
    static const char buf[] = "Expect:";

    curl_global_init(CURL_GLOBAL_ALL);

    /* Fill in the file upload field */
    curl_formadd(&formpost,
                 &lastptr,
                 CURLFORM_COPYNAME, "sendfile",
                 CURLFORM_FILE, path.c_str(),
                 CURLFORM_END);


    curl = curl_easy_init();
    /* initialize custom header list (stating that Expect: 100-continue is not
       wanted */
    headerlist = curl_slist_append(headerlist, buf);
    if(curl) {
        /* what URL that receives this POST */
        curl_easy_setopt(curl, CURLOPT_URL, PHOTO_HOST);
//        if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
//            /* only disable 100-continue header if explicitly requested */
//            curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);

        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl);

        curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &http_code);
        /* Check for errors */
        if(res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                    curl_easy_strerror(res));

        /* always cleanup */
        curl_easy_cleanup(curl);

        /* then cleanup the formpost chain */
        curl_formfree(formpost);
        /* free slist */
        curl_slist_free_all (headerlist);
    }
    return http_code;
}
开发者ID:waps12b,项目名称:emiyamulzomdao-ecube,代码行数:52,代码来源:sendFile.cpp


示例19: Qiniu_Io_PutBuffer

Qiniu_Error Qiniu_Io_PutBuffer(
	Qiniu_Client* self, Qiniu_Io_PutRet* ret,
	const char* uptoken, const char* key, const char* buf, size_t fsize, Qiniu_Io_PutExtra* extra)
{
	Qiniu_Io_form form;
	Qiniu_Io_form_init(&form, uptoken, key, extra);

	curl_formadd(
		&form.formpost, &form.lastptr, CURLFORM_COPYNAME, "file",
		CURLFORM_BUFFER, key, CURLFORM_BUFFERPTR, buf, CURLFORM_BUFFERLENGTH, fsize, CURLFORM_END);

	return Qiniu_Io_call(self, ret, form.formpost);
}
开发者ID:ThatisOK,项目名称:c-sdk,代码行数:13,代码来源:io.c


示例20: curl_formadd

/**
 * Submit a run
 * @param bott      Bott file for Run info
 * @return Submit status
 */
int SPOJJudger::submit(Bott * bott) {

  // prepare form for post
  struct curl_httppost * formpost = NULL;
  struct curl_httppost * lastptr = NULL;
  curl_formadd(&formpost, &lastptr,
               CURLFORM_COPYNAME, "submit",
               CURLFORM_COPYCONTENTS, "Send",
               CURLFORM_END);
  curl_formadd(&formpost, &lastptr,
               CURLFORM_COPYNAME, "problemcode",
               CURLFORM_COPYCONTENTS, bott->Getvid().c_str(),
               CURLFORM_END);
  curl_formadd(&formpost, &lastptr,
               CURLFORM_COPYNAME, "lang",
               CURLFORM_COPYCONTENTS,
                   convertLanguage(bott->Getlanguage()).c_str(),
               CURLFORM_END);
  curl_formadd(&formpost, &lastptr,
               CURLFORM_COPYNAME, "file",
               CURLFORM_COPYCONTENTS, bott->Getsrc().c_str(),
               CURLFORM_END);

  prepareCurl();
  curl_easy_setopt(curl, CURLOPT_URL, "http://www.spoj.com/submit/complete/");
  curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
  performCurl();

  // check submit status
  string html = loadAllFromFile(tmpfilename);
  // cout << html << endl;
  if (html.find("in this language for this problem") != string::npos) {
    return SUBMIT_INVALID_LANGUAGE;
  }
  if (html.find("<form name=\"login\"  action=\"") != string::npos) {
    return SUBMIT_OTHER_ERROR;
  }
  return VirtualJudger::SUBMIT_NORMAL;
}
开发者ID:BNUACM,项目名称:bnuoj-vjudge,代码行数:44,代码来源:SPOJJudger.cpp



注:本文中的curl_formadd函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ curl_formfree函数代码示例发布时间:2022-05-30
下一篇:
C++ curl_easy_unescape函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap