自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java獲取URL鏈接的文件類型

開發(fā) 后端
在寫網絡爬蟲的時候,需要根據(jù)鏈接來獲取文件類型,將內容正確存儲。之前我都是根據(jù)鏈接的后綴來判斷的。URLConnection提供了兩種方法可以猜測數(shù)據(jù)的MIME類型。詳細請看下文

在寫網絡爬蟲的時候,需要根據(jù)鏈接來獲取文件類型,將內容正確存儲。之前我都是根據(jù)鏈接的后綴來判斷的,比如:

http://img12.360buyimg.com/da/20120330/88_31_ZySDre.jpg

這個鏈接指向的文件就是個jpg文件。但是后來發(fā)現(xiàn)有諸如

http://jprice.360buyimg.com/getSkuPriceImgService.action?skuId=1850001109&origin=1&webSite=1&type=1的鏈接,這招就不靈了。后來谷歌百度了一下也沒發(fā)現(xiàn)解決辦法。后來機緣巧合在Java Network Programming上找到了一個辦法:

URLConnection class provides two static methods to help programs figure out the MIME type of some data; you can use these if the content type just isn't available or if you have reason to believe that the content type you're given isn't correct。

就是說URLConnection提供了兩種方法可以猜測(根據(jù)實測結果,這個猜測是相當?shù)臏剩?shù)據(jù)的MIME類型。

第一個是:

  1. public static String guessContentTypeFromName(String name) 

這個方法根據(jù)URL文件部分的后綴名來判斷類型,跟之前我的方法一樣。這個不能解決上面那個問題。

第二個是:

  1. public static String guessContentTypeFromStream(InputStream in)  

這個方法是根據(jù)流的前面幾個字節(jié)來判斷類型,這個就不需要文件后綴名了,完全可以解決上面那個問題。

測試代碼如下:

  1. BufferedInputStream bis = null;  
  2. HttpURLConnection urlconnection = null;  
  3. URL url = null;          
  4.         url = new URL(strUrl);  
  5.     urlconnection = (HttpURLConnection) url.openConnection();  
  6.     urlconnection.connect();  
  7. bis = new BufferedInputStream(urlconnection.getInputStream());  
  8.     System.out.println("file type:"+HttpURLConnection.guessContentTypeFromStream(bis)); 

原文鏈接:http://www.cnblogs.com/lisperl/archive/2012/05/21/2511224.html

責任編輯:林師授 來源: lisperl的博客
相關推薦

2010-03-10 09:27:36

Linux鏈接文件類型

2021-02-05 08:03:52

Java

2010-01-05 15:32:33

2010-03-01 15:34:38

Linux文件類型

2010-01-12 11:37:06

Linux常見文件

2009-10-21 10:50:59

Linux文件類型

2017-06-09 06:14:41

2010-05-21 10:02:56

2011-06-01 10:48:28

Android系統(tǒng)

2009-11-16 12:17:46

PHP上傳文件類型

2019-04-12 14:26:17

Linux命令文件

2010-04-02 13:15:01

Oracle跟蹤

2019-01-14 09:20:35

Linux類型文件

2010-05-25 17:01:44

2009-08-12 16:44:13

.NET文件類型

2023-12-04 15:42:10

類型Linux

2009-07-20 18:06:26

ASP.NET限制上傳

2024-08-26 12:18:07

Python代碼存根

2019-08-25 23:57:00

命令行Linux移動文件

2013-05-31 10:36:56

ASP.net文件上傳
點贊
收藏

51CTO技術棧公眾號