• Как загрузить фото на сервер VK (c++, curl)?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Так выглядит запрос (правда у меня загрузка не на стену а в альбом, но суть та же)
    POST http://cs62xxxx.vk.com/upload.php?act=do_add&mid=6xxxxxxx&aid=213651645&gid=0&hash=1b88ccc2a73467387614fdc740241ec3&rhash=af7e667ec013e00d6b7a42234018xxxx&swfupload=1&api=1 HTTP/1.1
    Host: cs62xxxx.vk.com
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
    Accept: */*
    Accept-Encoding: deflate, gzip
    Connection: Keep-Alive
    Cookie: remixlang=0
    Content-Length: 12573
    Content-Type: multipart/form-data; boundary=------------------------23512563ad262e45
    
    --------------------------23512563ad262e45
    Content-Disposition: form-data; name="file1"; filename="screenshot 2015-03-09 001_en.png"
    Content-Type: image/png
     PNG....содержимое файла
    --------------------------23512563ad262e45--


    это делается грубо говоря так:
    struct curl_httppost *formpost=NULL;
    struct curl_httppost *lastptr=NULL;
    
    curl_formadd(&formpost,
                                &lastptr,
                                CURLFORM_COPYNAME, "file1",
                                CURLFORM_FILENAME, "screenshot 2015-03-09 001_en.png",
                                CURLFORM_FILE, "D:\\screenshot 2015-03-09 001_en.png",
                                CURLFORM_CONTENTTYPE, "image/png",
                                CURLFORM_END);
     curl_easy_setopt(curl_handle, CURLOPT_URL, upload_url);
     curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formpost);
     curl_result = curl_easy_perform(curl_handle);


    В ответ получаете json с данными, которые надо будет передать для сохранения фото.

    Взял отсюда https://github.com/zenden2k/image-uploader/blob/ma...
    это не C++, но нижележащие вызовы curl (https://github.com/zenden2k/image-uploader/blob/1....)

    Если хотите можете заюзать мою обертку в своем проекте, чтобы не мучаться с сишным апи
    https://github.com/zenden2k/curl-cpp-wrapper
    Ответ написан
    5 комментариев
  • Использование параметров метода execute в хранимых процедурах?

    Ваш пример вообще работает? :)
    Для передачи параметров в execute используйте:

    var q=Args.q;
    

    Переменную q можно отправлять как GET так и POST запросом.

    П.С.: При работе с VKScript не поможет любой опыт… Там почти никакая логика не работает.
    Ответ написан
    5 комментариев