【问题标题】:real world user agents - what are they? How to set them? - Java现实世界的用户代理——它们是什么?如何设置它们? - 爪哇
【发布时间】:2013-02-02 16:52:07
【问题描述】:

我正在使用这一行在我的 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 的流。

【问题讨论】:

标签: java url


【解决方案1】:

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

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)。

【讨论】:

  • 非常感谢。这一切都非常有用!
猜你喜欢
  • 2014-05-15
  • 1970-01-01
  • 2011-09-11
  • 2011-05-23
  • 2010-09-13
  • 2016-10-24
  • 2021-10-27
  • 1970-01-01
相关资源
最近更新 更多