现实世界的用户代理 - 它们是什么?如何设置?- Java

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)Version / 6.0.2 Safari / 536.26.17

谢谢

附言 我在类似的问题上读过一个类似的问题,但是我从答案中并没有理解太多 - 我是Java初学者,刚刚开始尝试打开流文件和网址。


请查看:https://dev59.com/vHE85IYBdhLWcg3wZyqt - Michał Ziober
同时,设置Java URLConnection的用户代理https://dev59.com/dXE85IYBdhLWcg3w9odJ - Cyrille Ka
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接