2014-07-23 23 views
0

對於一個特定的HTTPS URL,下面的Java代碼不正確地檢索的Content-Type:HttpURLConnection類的getContentType不工作的SSL連接

URL url = new URL(urlString); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
String mimeType = connection.getContentType(); 

if (mimeType == null) throw new Exception("Could not detemine mimetype for remote URL."); 

但是如果我捲曲的URL與-I,我得到以下:

HTTP/1.1 200 OK 
Date: Wed, 23 Jul 2014 00:50:01 GMT 
Server: Apache/2.4.7 (Ubuntu) 
Cache-Control: max-age=0, no-cache 
Connection: close 
Content-Type: text/html 

此外,如果我沒有URL爲HTTPS運行Java代碼的getContentType確實成功地檢索MIME類型。最後,Java代碼對於使用HTTPS連接的其他服務器也有效。

+0

所以在這個特定的URL有些奇怪的東西。服務器配置。除了應對缺少的內容類型外,您無法在客戶端執行任何操作。 – EJP

+0

正確,但服務器上的內容會導致這種情況?另外爲什麼curl可以看到頭文件但java.net不? –

+0

您是否使用wireshark(或類似工具)來查看電線上發生了什麼?您是否在獲取內容類型之前嘗試獲取響應代碼? curl和java提供的可能是在請求的Accept頭中提供了不同的值嗎? –

回答