在java中使用curl传递动态文件名
我编写了通过发送post json文件作为请求来调用curl命令的Java代码。我的问题是如何通过java调用在curl命令中传递动态文件名在java中使用curl传递动态文件名,java,curl,Java,Curl,我编写了通过发送post json文件作为请求来调用curl命令的Java代码。我的问题是如何通过java调用在curl命令中传递动态文件名 curl -X POST https://reqbin.com/echo/post/json -H "Content-Type: application/json" -d "@filename.json" 在这里,我需要动态地传递文件名,但当我传递硬编码的文件名时,得到了错误的请求,它工作正常
curl -X POST https://reqbin.com/echo/post/json
-H "Content-Type: application/json"
-d "@filename.json"
在这里,我需要动态地传递文件名,但当我传递硬编码的文件名时,得到了错误的请求,它工作正常
在java中尝试了以下选项
“-d”、“@filename.json”-工作正常
动态尝试以下两个选项
"-d","@"+file.getAbsolutePath()
"-d","@D:\\sourcePath\\"+filename.json
上述两个命令都收到了错误的请求。通过从Java运行curl,您到底想解决什么问题?为什么不使用JavaHTTP客户机(或者像SpringRESTTemplate这样的高级包装器)粘贴生成的curl字符串,这会导致错误的结果request@JensBaitinger我使用下面的Apache客户机代码创建双向SSL,但获得“远程主机关闭连接”//keyStore file System.setProperty(“javax.net.ssl.keyStore”,“D:\\Own comany JKS file.JKS”);System.setProperty(“javax.net.ssl.keystrepassword”、“password”);//供应商提供的密码//信任库文件系统.setProperty(“javax.net.ssl.TrustStore”,“D:\\Client certificate JKS file.JKS”);setProperty(“javax.net.ssl.trustStorePassword”、“password”)@satyesht使用给定的curl命令。ProcessBuilder进程=新的ProcessBuilder(“curl.exe”、“-XPOST”、“-H”、“授权:基本头值”、“-H”、“内容类型:应用程序/json”、“URL”、“--cert”、“D:\\publickey.pem”、“--key”、“D:\\privatekey.key”、“--cacert”,“D:\\client public key.cer”、“-D”、“@D:\\”+f.getName()+”);在curl中为verbose添加-v以获取详细错误,也可以在不传递文件名的情况下传递-D‘File contents’,类似于-D Files.readAllbytes(新路径(filepath))