我正在使用远程API,我没有任何文档,我需要发送一个带有JSON有效负载的GET请求,该有效负载不是在原始HTTP请求中发送的,但似乎是在之后发送的。
这是使用原始Python工具使用以下指令完成的:
urllib.request.Request(url=url, method='GET', data=bytes(json.dumps(data), 'utf8'))
我一直在通过Wireshark查看有关它的更多信息,看起来GET请求由HTTP请求和JSON对象组成(两者彼此不同):
我的问题是:如何使用cURL C库实现这一目标?我一直在查看手册,看起来参数不能像POST请求一样传递(CURLOPT_POSTFIELDS)。
我终于找到了解决这个问题的方法。
我的cURL请求是使用CURLOPT_HTTPGET
选项完成的,该选项无法与CURLOPT_POSTFIELD
选项结合使用。为了解决这个问题,我需要用CURLOPT_CUSTOMREQUEST
选项替换它,允许我将任何请求类型组合到CURLOPT_POSTFIELD
选项。