gpt4 book ai didi

javascript - C - 使用 libcurl 的 http post 请求

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:26 26 4
gpt4 key购买 nike

我正在使用 http://curl.haxx.se/libcurl/c/http-post.html 处的代码尝试向我经常成功使用但使用 nodejs/javascript 的 Web 服务发出发布请求。我可以让发布请求从 javascript 工作,但不能从 C 和 libcurl 工作。

我的 C 代码几乎就是上面链接中的代码,

#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
/* In windows, this will init the winsock stuff */
curl_global_init(CURL_GLOBAL_ALL);
/* get a curl handle */
curl = curl_easy_init();
if(curl) {
/* First set the URL that is about to receive our POST. This URL can just as well be a https:// URL if that is what should receive the data. */
curl_easy_setopt(curl, CURLOPT_URL, "http://webservice.i.use.com/this/that");
/* Now specify the POST data */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "token=TOKEN&product=PROD&timeinterval=ONE_MINUTE&datetime=2013-10-22+19:10")
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",curl_easy_strerror(res));

/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}

返回,

<Cdata>
<Data />
<Success>false</Success>
<Message>Authentication Failed</Message>
</Cdata>

同样的基本信息(URL和POST数据),使用nodejs needle包,返回认证成功的结果。 Javascript 代码是,

var needle = require('needle')
needle.post('http://webservice.i.use.com/this/that',
{token:'TOKEN' , product:'PROD' , timeinterval:'ONE_MINUTE' , datetime:'2013-10-22+19:10'},·
function(err, resp, body){
console.log(body);
});

是否有一些 nodejs needle 包正在发送的额外信息,而不是用上面的 C 代码发送的?

我还尝试了 curl CLT

curl -data "token=...." "url ...."

但这也不起作用。

最近在 http://curl.haxx.se/libcurl/c/post-callback.html 处修改了代码以与上面相同的身份验证错误消息结束。任何帮助将非常感激。

最佳答案

已解决, token 值中有一个'+',需要为%2B。

关于javascript - C - 使用 libcurl 的 http post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21518105/

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