我的代码是这样的:
URL url;
URLConnection uc;
StringBuilder parsedContentFromUrl = new StringBuilder();
String urlString="http://www.example.com/content/w2e4dhy3kxya1v0d/";
System.out.println("Getting content for URl : " + urlString);
url = new URL(urlString);
uc = url.openConnection();
uc.connect();
uc.getInputStream();
BufferedInputStream in = new BufferedInputStream(uc.getInputStream());
int ch;
while ((ch = in.read()) != -1) {
parsedContentFromUrl.append((char) ch);
}
System.out.println(parsedContentFromUrl);
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过浏览器访问URL时没有问题,但是当我尝试通过java程序访问它时,它会抛出预期:
java.io.IOException: Server returned HTTP response code: 403 for URL
Run Code Online (Sandbox Code Playgroud)
解决办法是什么?
Nis*_*ant 46
在下面之间的代码添加uc.connect();和uc.getInputStream();:
uc = url.openConnection();
uc.addRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
Run Code Online (Sandbox Code Playgroud)
但是,允许某些类型的用户代理是个不错的主意.这将使您的网站安全,带宽使用率低.
您可能希望阻止某些可能不良的"用户代理",具体取决于您是否希望人们泄露您的内容和带宽.但是,正如您在上面的示例中所看到的,用户代理可能会被欺骗.
| 归档时间: |
|
| 查看次数: |
53583 次 |
| 最近记录: |