繁体   English   中英

在Java中复制wget命令

[英]replicate wget command in java

我有这个命令:

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

可能吗? 我该怎么办?

提前致谢

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

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

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

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

如果wget看起来像是普通的GET请求,我不知道为什么要尝试POST。

只需在Java中也使用GET请求。

它应该工作。

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

因此可能是因为您没有正确进行身份验证。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM