📅  最后修改于: 2023-12-03 15:21:35.166000             🧑  作者: Mango
在开发 API 时,编写测试代码是非常重要的,可以确保 API 的正确性和性能。本文将介绍如何在 C 编程语言中编写 API 请求的测试。
在编写测试代码之前,需要准备好以下工具和库:
对于 Curl 的安装,可以参考 官方文档,对于 cJSON,可以在 Github 上下载代码并编译。
发送 GET 请求的代码如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include "cJSON.h"
int main() {
CURL *curl = curl_easy_init();
if(curl) {
char *url = "http://jsonplaceholder.typicode.com/posts/1";
curl_easy_setopt(curl, CURLOPT_URL, url);
CURLcode res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
else {
cJSON *json = cJSON_Parse(curl_easy_escape(curl, curl_easy_strerror(res), 0));
printf("Response: %s\n", cJSON_Print(json));
cJSON_Delete(json);
}
curl_easy_cleanup(curl);
}
return 0;
}
以上代码发送一个 GET 请求,并解析返回的 JSON 数据。其中:
curl_easy_init()
用于初始化 Curl,返回一个 Curl 的实例。curl_easy_setopt()
用于设置 Curl 的选项,比如请求的 URL、请求类型等。curl_easy_perform()
用于发送请求,并返回请求的响应。CURLcode
是 Curl 操作的返回值类型,CURLE_OK 表示操作成功。cJSON_Parse()
用于解析 JSON 数据,返回一个 cJSON 对象。cJSON_Print()
用于将 cJSON 对象转化成 JSON 字符串。cJSON_Delete()
用于释放 cJSON 对象占用的内存。发送 POST 请求的代码如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include "cJSON.h"
int main() {
CURL *curl = curl_easy_init();
if(curl) {
char *url = "http://jsonplaceholder.typicode.com/posts";
const char *postData = "{ \"title\": \"foo\", \"body\": \"bar\", \"userId\": \"1\" }";
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData);
CURLcode res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
else {
cJSON *json = cJSON_Parse(curl_easy_escape(curl, curl_easy_strerror(res), 0));
printf("Response: %s\n", cJSON_Print(json));
cJSON_Delete(json);
}
curl_easy_cleanup(curl);
}
return 0;
}
以上代码发送一个 POST 请求,并解析返回的 JSON 数据。其中 curl_easy_setopt()
用于设置 POST 请求的数据。
本文介绍了如何在 C 编程语言中编写 API 请求的测试,包括发送 GET 和 POST 请求,并解析 JSON 数据。希望对大家有所帮助。