2014-07-23 27 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头中提供了不同的值吗? –

回答