用java中的shell命令执行curl请求?
我想知道如何为我在web上找到的API运行这个命令行代码。API希望我运行的代码如下所示:用java中的shell命令执行curl请求?,java,shell,curl,Java,Shell,Curl,我想知道如何为我在web上找到的API运行这个命令行代码。API希望我运行的代码如下所示: curl-i”https://api-fxtrade.oanda.com/v1/prices?instruments=EUR_USD“ 此代码将在JSON响应中返回数据。我试图通过运行一个shell命令来实现这一点。我的代码如下: import java.io.*; public class FxTest { public static void main(String[] args) {
curl-i”https://api-fxtrade.oanda.com/v1/prices?instruments=EUR_USD“
此代码将在JSON响应中返回数据。我试图通过运行一个shell命令来实现这一点。我的代码如下:
import java.io.*;
public class FxTest {
public static void main(String[] args) {
FxTest obj = new FxTest();
String command = "curl -i \"https://api-fxtrade.oanda.com/v1/prices?instruments=EUR_USD\"";
String output = obj.executeCommand(command);
System.out.println(output);
}
private String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
}
运行此代码时,出现以下错误:
java.io.IOException:无法运行程序“curl”:CreateProcess error=2,系统找不到指定的文件
shell命令会执行我正在尝试执行的代码吗?或者它们是更好的执行方法吗?如果此代码无法在shell命令中执行,那么我有哪些选项,这些选项如何工作,以及我应该从何处了解更多信息。如果shell命令是一种很好的方法,那么我的代码有什么问题?我应该从哪里了解更多关于如何使用shell命令的信息?谢谢你的帮助 为什么不使用本机java方法来实现:HttpURLConnection?正如您在本教程中所看到的,这有点冗长:。更好的方法是尝试ApacheHttpClient。它有一个很好的流体界面,可以让您调用url,简单如下:
// Execute a GET with timeout settings and return response content as String.
Request.Get("http://somehost/") .execute().returnContent().asString();
然后,您可以使用一个javajason库来操作结果。json simple是最容易使用的(但有很多可供选择):。首先解析上面http调用返回的字符串:
Object obj=JSONValue.parse(s);
我推荐一些本机方法(请求类)。如果仍然希望使用exec执行,则应将命令作为
字符串[]
传递,第一个元素是shell<代码>字符串[]cmd={{//bin/bash/“},{“curl”},{“-i”},{”https://api-fxtrade.oanda.com/v1/prices?instruments=EUR_USD\'"}};代码>