gpt4 book ai didi

使用curl和json-c从C调用json web服务

转载 作者:行者123 更新时间:2023-11-30 18:25:36 25 4
gpt4 key购买 nike

我需要调用一个接受 json 对象的 Restful Web 服务。我能够找到像 libcurl 这样的库来从 C 应用程序调用 Web 服务。我还能够找到像 json-c 这样的库来在 C 中创建 json 对象。

libcurl 接受一个字符串并将其发布到给定的 Web 服务 URL。无论如何,我可以发布使用 json-c 库创建的 json 对象并使用curl 库调用 web 服务。

请告诉我是否有任何其他库允许我创建 json 对象并调用 Web 服务或任何其他替代解决方案。

感谢您提前提供的帮助。

最佳答案

这是使用这两个库的示例:

#include <stdio.h>
#include <curl/curl.h>
#include <json-c/json.h>

int main(int argc, char **argv)
{

/* LIB JSON-C PART */
/* Create a JSON object */
json_object * jObj = json_object_new_object();

/* Create a string element */
json_object *jString = json_object_new_string("Guybrush");

/* Include the element to the JSON final object */
json_object_object_add(jObj,"name", jString);


/* LIB CURL PART */
/* Initialize CURL */
CURL *curlHandler = curl_easy_init();

if(curlHandler) {
/* Set CURL parameters */
curl_easy_setopt(curlHandler, CURLOPT_URL, "http://api.yoururl.com");
curl_easy_setopt(curlHandler, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curlHandler, CURLOPT_POSTFIELDS,
json_object_to_json_string(jObj));

/* Perform the request */
CURLcode res = curl_easy_perform(curlHandler);

/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "CURL failed: %s\n",
curl_easy_strerror(res));

/* Clean up */
curl_easy_cleanup(curlHandler);
json_object_object_del(jObj, "name");
free(jObj);
}
return 0;
}

关于使用curl和json-c从C调用json web服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com