我遇到问题,当使用tar -cz folder | curl -X PUT -d @- http://example.com/api/take/file
以下命令不起作用:
tar -cz folder | curl -X PUT -T - http://example.com/api/take/file
以下命令有效:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile("C:/LogFiles/log-{Date}.txt")
.CreateLogger();
}
有人知道这种行为的原因是什么。
答案 0 :(得分:0)
好的,我在curl的文档中找到了根本原因:
-d
因此,当您只使用--data-binary
时,数据将以ascii格式发送。
根据文档,二进制数据应与tar -cz folder | curl -X PUT --data-binary @- http://example.com/api/take/file
一起发送,实际上以下命令的工作原理为
curl -X DELETE -d '{"ruleid": "${value}"}' 'http://192.168.0.12:8080/wm/firewall/rules/json'