带有非url参数的libCurl GET请求(对象/有效负载)

时间:2017-12-15 21:40:50

标签: c http libcurl

我正在使用远程API,我没有任何文档,我需要发送一个带有JSON有效负载的GET请求,该请求不会在原始HTTP请求中发送,但似乎是马上发送。

使用以下指令使用原始Python工具完成此操作:

urllib.request.Request(url=url, method='GET', data=bytes(json.dumps(data), 'utf8'))

我一直在通过Wireshark查看有关它的更多信息,看起来GET请求由HTTP请求和JSON对象组成(两者彼此不同):

Wireshark

我的问题是:如何使用cURL C库实现这一目标? 我一直在查看手册,看来参数不能像POST请求那样传递(CURLOPT_POSTFIELDS)。

1 个答案:

答案 0 :(得分:1)

我终于找到了解决这个问题的方法。

我的cURL请求是使用var shapedData = data.Select(x => new { ID = x.ID, userInf = x.UserInf.Name, price = x.Price, kdv = x.Kdv, total = x.Total, note = x.note }).ToList(); 选项完成的,该选项无法与CURLOPT_HTTPGET选项结合使用。要解决此问题,我需要将其替换为CURLOPT_POSTFIELD选项,以便将任何请求类型与CURLOPT_CUSTOMREQUEST选项结合使用。

这篇文章帮助我:a raw libcurl JSON PUT request using C