欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 訪問url post json數據

劉柏宏1年前8瀏覽0評論

在C語言中,我們可以使用libcurl庫來實現訪問URL并傳輸JSON數據的功能。

首先,我們需要在代碼中引入curl庫的頭文件:

#include <curl/curl.h>

接下來,我們需要定義一個函數來處理我們需要上傳的JSON數據,并將其傳輸到URL中:

static size_t handle_json_data(void *ptr, size_t size, size_t nmemb, void *stream) {
char *json_data = (char *) ptr;
size_t jsonDataSize = size * nmemb;
strcpy((char *) stream, json_data);
return jsonDataSize;
}

然后我們需要定義一個函數來實現向URL發送請求和接收響應的功能,具體代碼如下:

void post_json_data(char *url_str, char *json_payload) {
CURLcode res;
CURL *curl;
char error_buf[CURL_ERROR_SIZE];
char response_buf[MAX_RESPONSE_SIZE] = {0};
long http_response_code;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, url_str);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload);
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(json_payload));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, handle_json_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) response_buf);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error_buf);
res = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_response_code);
curl_easy_cleanup(curl);
if (res != CURLE_OK) {
printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
return;
}
printf("HTTP response code: %ld\n", http_response_code);
printf("HTTP response: %s\n", response_buf);
}
}

在這個函數中,我們使用了curl_easy_init()函數來初始化一個curl對象;使用curl_easy_setopt()函數來設置URL、JSON數據、讀寫數據的函數等參數;使用curl_easy_perform()函數來執行POST請求并接收響應;并最終打印出HTTP響應碼和響應內容。

最后,我們可以在main函數中調用post_json_data()函數來實現訪問URL并傳輸JSON數據的功能。