[英]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.