在java中复制wget命令

时间:2017-01-06 10:06:17

标签: java linux

我有这个命令:

wget -O prova.csv  --header="prova-user: guest" --header="prova-passwd: guest" 
"http://www.....................80&albedo=0.2&horizon=1"

我想用Java安排批处理,但我无法连接。当我尝试接受imputstream时返回此错误:

错误消息-8:未注册的IP地址

这是我的代码:

URL myURL = new URL(url);
HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection();
String userCredentials = "guest:guest";
String basicAuth = "Basic " + new String(new Base64().encode(userCredentials.getBytes()));
myURLConnection.setRequestProperty ("Authorization", basicAuth);
myURLConnection.setRequestMethod("POST");
myURLConnection.setRequestProperty("Content-Language", "en-US");
myURLConnection.setUseCaches(false);
myURLConnection.setDoInput(true);
myURLConnection.setDoOutput(true);

// Show page.
BufferedReader reader = null;
try {
     reader = new BufferedReader(new InputStreamReader(myURLConnection.getInputStream(), "UTF-8"));
     for (String line; ((line = reader.readLine()) != null);) {
            System.out.println(line);
     }
 } finally {
       if (reader != null) try { reader.close(); } catch (IOException ignore) {}
}

有可能吗?我该怎么办?

提前致谢

1 个答案:

答案 0 :(得分:0)

您提供了2个完全不同的命令。

第一个是wget,它在HTTP头中发送一种身份验证信息,并获得结果。

第二个是一个java程序,它在POST中使用基本身份验证执行HTTP请求。

如果第一个命令正常,那么您应该忘记基本身份验证并像在wget命令中那样设置正确的HTTP头。

如果wget看起来像普通的GET请求,我不知道你尝试POST的原因。

也可以在java中使用GET请求。

它应该有用。

关于错误,我想是向您发送此类错误消息的服务器。

因此,您可能无法正确验证身份。

但这是一个奇怪的错误,如果服务器有一个允许连接的白名单IP地址,我预计会出现这种错误。

您是否在同一台服务器上运行wget和java代码?