色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c get請求帶json參數

錢琪琛2年前8瀏覽0評論

在C語言開發中,經常會用到HTTP請求。其中GET請求是一種常見的請求方式。有時候會需要帶上JSON格式的參數進行請求。下面,我們來看一下如何實現C語言的GET請求帶JSON參數。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata)
{
char *str = (char*)userdata;
strcat(str, ptr);
return size * nmemb;
}
int main()
{
char *url = "https://example.com/api";
char *json_str = "{\"key1\": \"value1\", \"key2\": \"value2\"}";
char full_url[256];
strcpy(full_url, url);
strcat(full_url, "?data=");
strcat(full_url, json_str);
CURL *curl = curl_easy_init();
if(curl)
{
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, full_url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
char *str = (char*)calloc(1, sizeof(char));
curl_easy_setopt(curl, CURLOPT_WRITEDATA, str);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
else
{
printf("%s\n", str);
}
free(str);
curl_easy_cleanup(curl);
}
return 0;
}

上述代碼使用了C語言的curl庫來實現HTTP請求。其中:

  • 第 7 行到第 11 行是回調函數,在HTTP請求完成后被調用,將返回的數據存儲到 userdata 中;
  • 第 15 行到第 18 行是拼接完整的請求地址;
  • 第 20 行到第 23 行是初始化 CURL;
  • 第 25 行設置請求地址;
  • 第 26 行設置回調函數;
  • 第 28 行到第 31 行是申請內存空間,用于存儲返回的數據;
  • 第 32 行發送請求;
  • 第 34 行到第 38 行是處理返回的數據;
  • 第 40 行釋放申請的內存空間;
  • 第 41 行清理 CURL。

在這個例子中,我們將 JSON 數據拼接到請求地址中,然后通過回調函數將返回的數據存儲到內存中。當然,還有其他的方式將 JSON 數據發送到服務器,如使用 POST 請求并將 JSON 數據放在請求體中。