我編寫了簡單的代碼來獲取給定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