BOOL get_access_token_info(const char* access_token) { const char* func_name = __func__; debug_log_enter(FINE, func_name, "s", access_token); cJSON* root = NULL; PTR_HTTP_REQUEST request = alloc_http_request(1, 0, 0, 0); PTR_HTTP_RESPONSE response = NULL; request->params[0].name = "access_token"; request->params[0].value = access_token; response = https_post(APP_GET_TOKEN_INFO_URL, request); if (response->status_code != 200) { free_http_request(request); free_http_response(response); return False; } root = cJSON_Parse((char*)(response->body)); if (check_api_error(root)) { free_http_request(request); free_http_response(response); cJSON_Delete(root); return False; } free_http_request(request); free_http_response(response); cJSON_Delete(root); debug_log_exit(FINE, func_name); return True; }
BOOL repost_weibo(const char* access_token, const char* text, const char* weibo_id) { const char* func_name = __func__; debug_log_enter(FINE, func_name, "sss", access_token, text, weibo_id); cJSON* root = NULL; PTR_HTTP_REQUEST request = alloc_http_request(0, 0, 0, (100+strlen(text))*sizeof(char)); PTR_HTTP_RESPONSE response = NULL; /* request->form[0].name = "access_token"; request->form[0].value = access_token; request->form[0].type = STRING; request->form[1].name = "status"; request->form[1].value = text; request->form[1].type = STRING; request->form[2].name = "id"; request->form[2].value = weibo_id; request->form[2].type = STRING; */ sprintf((char*)(request->body), "access_token=%s&id=%s&status=%s", access_token, weibo_id, text); request->body_length = strlen((char*)(request->body)); response = https_post(WEIBO_REPOST_URL, request); if (response->status_code != 200) { free_http_request(request); free_http_response(response); return False; } root = cJSON_Parse((char*)(response->body)); if (check_api_error(root)) { free_http_request(request); free_http_response(response); cJSON_Delete(root); return False; } free_http_request(request); free_http_response(response); cJSON_Delete(root); debug_log_exit(FINE, func_name); return True; }
BOOL create_weibo_pic(const char* access_token, const char* text, const char* pic_name) { const char* func_name = __func__; debug_log_enter(FINE, func_name, "ss", access_token, text); cJSON* root = NULL; PTR_HTTP_REQUEST request = alloc_http_request(0, 0, 3, 0); PTR_HTTP_RESPONSE response = NULL; request->form[0].name = "access_token"; request->form[0].value = access_token; request->form[0].type = STRING; request->form[1].name = "status"; request->form[1].value = text; request->form[1].type = STRING; request->form[2].name = "pic"; request->form[2].value = pic_name; request->form[2].type = FILENAME; response = https_post(WEIBO_CREATE_URL, request); if (response->status_code != 200) { free_http_request(request); free_http_response(response); return False; } root = cJSON_Parse((char*)(response->body)); if (check_api_error(root)) { free_http_request(request); free_http_response(response); cJSON_Delete(root); return False; } free_http_request(request); free_http_response(response); cJSON_Delete(root); debug_log_exit(FINE, func_name); return True; }
std::string api::orders() { return https_post("open_orders/", get_auth()); }
std::string api::bitcoin_deposit_address() { return https_post("bitcoin_deposit_address/", get_auth()); }
std::string api::unconfirmed_btc() { return https_post("unconfirmed_btc/", get_auth()); }
std::string api::balance() { return https_post("balance/", get_auth()); }
std::string api::cancel(const std::string& order) { std::stringstream post; post << get_auth() << "&id=" << order; return https_post("cancel_order/", post.str()); }
std::string api::bitcoin_withdrawal(const std::string& amount, const std::string& address) { std::stringstream post; post << get_auth() << "&amount=" << amount << "&address=" << address; return https_post("bitcoin_withdrawal/", post.str()); }
std::string api::buy(const std::string& amount, const std::string& price) { std::stringstream post; post << get_auth() << "&amount=" << amount << "&price=" << price; return https_post("buy/", post.str()); }
std::string api::transactions(const std::string& offset, const std::string& limit, const std::string& sort) { std::stringstream post; post << get_auth() << "&offset=" << offset << "&limit=" << limit << "&sort=" << sort; return https_post("user_transactions/", post.str()); }
std::string api::withdrawal_requests() { return https_post("withdrawal_requests/", get_auth()); }