寻找一种简单的方法在Java中复制以下Linux curl命令:
我需要通过HTTP上传文件“/home/myNewFile.txt” /卷曲到HTTP服务器(在这种情况下是伪影或)
curl -u myUser:myP455w0rd! -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T /home/myNewFile.txt
提前致谢!
寻找一种简单的方法在Java中复制以下Linux curl命令:
我需要通过HTTP上传文件“/home/myNewFile.txt” /卷曲到HTTP服务器(在这种情况下是伪影或)
curl -u myUser:myP455w0rd! -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T /home/myNewFile.txt
提前致谢!
首先,投你的URLConnection一个HttpURLConnection类。
Authorization
请求头以"Basic "
其次是(包括空间) 基64编码的形式user + ":" + password
。 这是基本认证方案中所描述的HTTP 1.1:RFC 2616规范和RFC 2617:HTTP认证 。 综上所述,代码是这样的:
URL url = new URL("http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
String auth = user + ":" + password;
conn.setRequestProperty("Authorization", "Basic " +
Base64.getEncoder().encodeToString(
auth.getBytes(StandardCharsets.UTF_8)));
conn.setRequestMethod("PUT");
conn.setDoOutput(true);
try (OutputStream out = conn.getOutputStream()) {
Files.copy(Paths.get("/home/myNewFile.txt"), out));
}
我不主张,这是做事的正确方法,但由于是直接从你的java文件,你可以执行的命令行语句。
下面是代码从一个程序我写的Java程序,我写中执行PHP脚本(使用Linux命令行语句)的一个片段。
public void executeCommand(String command)
{
if(command.equals("send_SMS"))
{
try
{
//execute PHP script that calls Twilio.com to sent SMS text message.
Process process = Runtime.getRuntime().exec("php send-sms.php\n");
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
这为我工作。
退房的流程和运行时类这里的API:
https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html
和
https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html