我正在使用此行在我的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,与Gecko一样)Version / 6.0.2 Safari / 536.26.17
由于
Ps我已经阅读了类似的问题,但我对答案了解不多 - 我是一名java初学者,刚开始尝试打开文件和网址流。
答案 0 :(得分:4)
我可以设置用户代理的最简单方法是什么?
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)。