gpt4 book ai didi

java - 在java中复制wget命令

转载 作者:太空狗 更新时间:2023-10-29 12:41:34 25 4
gpt4 key购买 nike

我有这个命令:

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 header 中发送一种身份验证信息,并获取结果。

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

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

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

也只需在 java 中使用 GET 请求即可。

它应该可以工作。

关于错误,我想是服务器向您发送了这样的错误消息。

所以这可能是因为您没有正确验证。

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

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

关于java - 在java中复制wget命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41503268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com