我编写了简单的代码来获取给定URL的content-type
。为了使处理速度更快,我进行了更改设置请求方法HEAD
HTTP响应内容类型与HEAD请求不同
// Added a random puppy face picture here
// On entering this query in browser (or Poster<mozilla> or Postman<chrome>), the
// content type is shown as image/jpeg
URL url = new URL("http://www.bubblews.com/assets/images/news/521013543_1385596410.jpg");
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("HEAD");
connection.connect();
String contentType = connection.getContentType();
System.out.println(contentType);
if (!contentType.contains("text/html")) {
System.out.println("NOT TEXT/HTML");
// Do something
}
我想实现的东西,如果它不是text/html
,但是当我设置请求方法HEAD
,内容类型显示为text/html
。如果我使用Poster
或Postman
发出相同HEAD
请求,我会将content-type
视为image/jpeg
。
那么,在这个Java代码的情况下,什么是内容类型的变化?有人可以指出我可能犯的任何错误吗?
注:我以前this岗位作为参考
我想你会得到一个说明“方法不允许”或其他错误的HTML页面。您应该添加一个“Accept”标头和“User-Agent”标头。 – hgoebl
@hgoebl那么,在这种情况下,使用'poster/postman'进行测试时,它是否不应该具有'image/jpeg'? – Rakesh
我不确定Postman添加到您的请求中的邮件数量是否由您明确设置。我想'用户代理'和'接受'可能就是其中之一。你可以嗅探交通(Fiddler,Wireshark)吗? – hgoebl