在 C 中发布 JSON 对象时,位置 0 处出现意外标记 004

S_Kalog

我在尝试发送我在 C 中创建的 JSON 对象时遇到问题。服务器能够很好地发送和接收数据。说到 C,我是个业余爱好者。

    static int main_curl(neardal_record* pRecord)
    {
    CURL *curl;
    CURLcode res;
    char * record = pRecord->representation;

    json_object *jobj = json_object_new_object(); 
    json_object *jstring = json_object_new_string(record);

    json_object_object_add(jobj,"id", jstring);


    curl = curl_easy_init();

    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Accept: application/json");
    headers = curl_slist_append(headers, "Content-Type: application/json");
    headers = curl_slist_append(headers, "charset: utf-8");

    curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.43.20:5000/api/swipes");

    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jobj);
    curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcrp/0.1");
    printf ("The json object created:%s ",json_object_to_json_string(jobj));


    res = curl_easy_perform(curl);

    curl_easy_cleanup(curl);
    curl_global_cleanup();
    return res;
    }

当打印出 JSON 对象时,我得到了这个 -> The json object created:{ "id": "hello, world" }

服务器响应如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>Error</title>
    </head>
    <body>
    <pre>SyntaxError: Unexpected token  in JSON at position 0<br> &nbsp; &nbsp;at JSON.parse 
    (&lt;anonymous&gt;)<br> &nbsp; &nbsp;at createStrictSyntaxError 
    (/Users/backend/node_modules/body-parser/lib/types/json.js:158:10)<br> 
    &nbsp; &nbsp;at parse (/Users/backend/node_modules/body- 
    parser/lib/types/json.js:83:15)<br> &nbsp; &nbsp;at 
    /Users/backend/node_modules/body-parser/lib/read.js:121:18<br> &nbsp; 
    &nbsp;at invokeCallback (/Users/backend/node_modules/raw- 
    body/index.js:224:16)<br> &nbsp; &nbsp;at done 
    (/Users/backend/node_modules/raw-body/index.js:213:7)<br> &nbsp; 
    &nbsp;at IncomingMessage.onEnd (/Users/backend/node_modules/raw- 
    body/index.js:273:7)<br> &nbsp; &nbsp;at IncomingMessage.emit (events.js:333:22)<br> &nbsp; 
    &nbsp;at endReadableNT (_stream_readable.js:1201:12)<br> &nbsp; &nbsp;at 
    processTicksAndRejections (internal/process/task_queues.js:84:21)</pre>
    </body>
    </html>

当使用 Wireshark 拦截请求时,Post 看起来像这个POST 请求并且响应错误是这个BAD REQUEST 400

我几乎可以肯定错误是我构建 JSON 对象的方式,但如前所述,我对 C 非常陌生。如果我硬编码文本而不是对象,则请求成功。任何帮助将非常感激。谢谢!

S_Kalog

毕竟通过将其更改为这个curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jobj);设法弄清楚curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_object_to_json_string(jobj));

如果我错了,请纠正我,但我假设我不能只发送 JSON 对象而不先将其转换为字符串。

任何进一步的建议将不胜感激!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将 proj4js 与 webpack 捆绑会导致“位置 0 处的 JSON 中出现意外标记 m”

将数组从php传递到ajax时,JSON意外标记C在位置0处

JSON 中位置 0 处的意外标记

JSON 中位置 0 处的意外标记

<Jasmine> 位置 0 处的 JSON 中的意外标记 u

SyntaxError:JSON位置0处出现意外的令牌C-Ionic 2 Http GET请求

SyntaxError:JSON中位置0处出现意外令牌'

SyntaxError:JSON中位置0处出现意外令牌“

获取SyntaxError:运行Lambda测试时,JSON意外标记u在位置0处

JSON.parse 位置 0 处的 JSON 中的意外标记

Java Eclipse - 尝试从 JSON 读取时“位置 0 处出现意外令牌 END OF FILE”

查询API时,JSON在位置0处出现意外令牌O

angular ajax:JSON中位置0处的意外标记I

JSON 中位置 0 处的意外标记 u 不适用于异步

“解析器错误”语法错误:位置 0 处的 JSON 中的意外标记 <

提取中位置 0 处的 JSON 中的意外标记 P。请帮我

TypeScript错误TS5014:JSON在位置0处出现意外令牌u

WordPress:在使用 Duplicator 复制页面后,位置 0 处的 JSON 中出现意外令牌 <

未捕获的语法错误:JSON.parse 位置 0 处的 JSON 中的意外标记 d(<匿名>)

错误语法错误:JSON.parse 位置 0 处的 JSON 中的意外标记 u (<anonymous>)

未捕获的语法错误:JSON.parse 中位置 0 处的 JSON 中的意外标记 < - Wordpress

Wordpress/woocommerce:当用户登录时重定向,导致位置 0 处的 JSON 中出现意外令牌 <

意外的标记 ?在位置 0 处的 JSON

JSON::ParserError:Rails Rspec 上的 '' 处出现意外标记

Svelte-i18n 抱怨 json 文件中冒号处出现意外标记

期望字符串时JSON.parse位置0处JSON中的意外角度标记c

SyntaxError:JSON 中位置 0 Express 的意外标记

Angular SyntaxError:JSON 中位置 0 的意外标记 P

未捕获的语法错误:控制台中 App.js:18:1 处 JSON.parse (<anonymous>) 位置 0 处 JSON 中的意外标记 u