概述:我们使用现成的映射工具来进行数据映射(创建JSON文件等)。然后,我们使用该工具调用exe,以使Curl将JSON文件发布到API。除了可以创建输出文件(向我们展示API连接的结果)之外,这非常有用。当我们从命令行运行exe时,将成功创建输出文件,但是当我们通过其他工具调用该命令来运行完全相同的命令时,则不会创建输出文件。是否有人对如何解决此问题有任何想法?
我们具有以下curl命令来处理PUT API调用。我们使用一个请求文件,并且打算生成一个响应输出文件(以监视webAPI结果)和跟踪日志(用于调试目的)。
curl --request PUT "https://client.mirakl.net//api/orders/order101/tracking" ^
-d @"D:\HSG\Test\PUTOR23\order101.json" ^
-o "D:\HSG\Test\PUTOR23\Output\order101_out.txt" ^
--trace-ascii "D:\HSG\Test\PUTOR23\Outputorder101_TRACE.txt"
此命令在命令行上可以正常工作(生成输出文件和跟踪文件)。
但是,当我们从映射工具执行完全相同的命令时,它不会生成输出文件(跟踪文件确实会成功更新)。 Curl能够读取请求数据文件,并且还会生成跟踪文件。但是由于某种原因未生成输出文件。
我们尝试了-o,-O和控制台重定向>选项,但从映射工具调用时似乎没有任何输出文件。
curl命令选项中没有任何要纠正的地方,我们怀疑我们的映射工具在某种程度上阻止了控制台的所有输出(因此,由于不允许输出,因此可能还没有创建输出文件)。
为了克服限制,我们采取了包装curl命令在批处理(.bat)文件中]]。并确保既不卷曲也不卷曲批处理文件在控制台上产生任何输出。使用curl的--silent选项并使用-o悄悄地将输出重定向到文件通缉)。而且有效!
以某种方式,批处理文件中的curl命令执行不受我们的映射工具的干扰,它允许创建响应输出文件。听起来有些杂乱无章,但有效。