3

我正在使用这条线在我的 java 程序中打开一个流,但我认为由于我的真实世界用户代理,我被阻止了。

private InputStream is = new URL(a).openStream();  

其中 a 是包含 url 的字符串。

我可以设置用户代理的最简单方法是什么?我才刚刚了解它们,所以任何进一步的信息将不胜感激。例如:我想将其设置为 Mozilla/5.0。我需要添加任何进一步的信息吗?如果是这样,应该包括什么以及如何?另外,这是否严格允许,因为我是否应该担心有关设置用户代理的任何法律问题?抱歉,如果这个问题没有意义,那只是因为我对用户代理(基本上是程序发送它们)并不了解,而且我不确定您是否必须注册或其他什么 - 我已经看到我 Mac 上的 Safari 添加: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) 版本/6.0.2 Safari/536.26.17

谢谢

Ps 我已经阅读了一个类似的问题,但我对答案的理解并不多——我是一名 java 初学者,才刚刚开始尝试打开文件和 url 的流。

4

1 回答 1

5

我可以设置用户代理的最简单方法是什么?

URLConnection urlConnection = new URL(a).openConnection();
urlConnection.addRequestProperty("User-Agent", "Mozilla/5.0");
InputStream is = urlConnection.getInputStream();

我想将其设置为 Mozilla/5.0。我需要添加任何进一步的信息吗?

您可以将其设置为任何您想要的。识别您的应用程序实际上是一个好主意,否则所有 Java 程序都会简单地发送:

User-Agent: Java/1.7.0_11

另外,这是否严格允许,因为我是否应该担心有关设置用户代理的任何法律问题?

不,您可以随意使用任何用户代理。此外,伪造用户代理并不违法。但是,如果一个网站基于 做出任何决定(尤其是关于安全性)User-Agent,那将是非常糟糕的,因为它几乎是非法的;-)(请参阅:Java - Not getting html code from a URL)。

于 2013-02-02T16:58:03.007 回答