在Java

时间:2018-03-29 08:39:49

标签: java curl unix-socket

当我输入类似的内容时,我希望获得curl输出的相同字符串标准:

curl --unix-socket file.sock http://path/to/rest/request

在我的Java代码中。 我想我需要使用AFUNIXSocket,但我可以在连接时设置套接字文件,所以我想我必须手动管理我的http连接。

有没有办法让它更容易?如何通过我创建的套接字启动http连接?

1 个答案:

答案 0 :(得分:0)

所以,我试图自己管理http连接,它可以工作,但我仍然在寻找一种更清洁的方法来做到这一点。 这就是我的表现:

AFUNIXSocket s = AFUNIXSocket.newInstance();
AFUNIXSocketAddress sockAdd = new AFUNIXSocketAddress(new File("file.sock"));

s.connect(sockAdd);

BufferedReader bf = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream());


pw.write("GET /to/rest/request HTTP/1.1\r\n");

pw.write("Host: path\r\n");
pw.write("Accept:*/*\r\n");
pw.write("\r\n");
pw.flush();
String reply = "";

Thread.sleep(500);
while (bf.ready())
   reply = reply + bf.readLine() + "\n";

做同样的卷曲调用也是一样的:

curl --unix-socket file.sock http://path/to/rest/request