Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用curl传递动态文件名_Java_Curl - Fatal编程技术网

在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" 在这里,我需要动态地传递文件名,但当我传递硬编码的文件名时,得到了错误的请求,它工作正常

我编写了通过发送post json文件作为请求来调用curl命令的Java代码。我的问题是如何通过java调用在curl命令中传递动态文件名

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))