URLConnection返回text / html内容类型

时间:2014-04-18 21:12:24

标签: httpurlconnection urlconnection

我正在尝试获取在线pdf文件的输入流,但该过程无效。 URLConnectioncontent type的网址返回text/html而不是application/pdf。正如您所见,https://www.dropbox.com/s/ao3up7xudju4qm0/Amalgabond%20Adhesive%20Agent.pdf url是pdf。

我使用以下代码URLConnection并获取Content Type

URL fileUrl;
try {               
String str = "https://www.dropbox.com/s/ao3up7xudju4qm0/Amalgabond%20Adhesive%20Agent.pdf"
fileUrl = new URL(str);
URLConnection connection = fileUrl.openConnection();
Log.i("mustang", "Content-type: " + connection.getContentType());
InputStream is = fileUrl.openStream();
Log.i("mustang", "is.available(): " + is.available());

URL fileUrl; try { String str = "https://www.dropbox.com/s/ao3up7xudju4qm0/Amalgabond%20Adhesive%20Agent.pdf" fileUrl = new URL(str); URLConnection connection = fileUrl.openConnection(); Log.i("mustang", "Content-type: " + connection.getContentType()); InputStream is = fileUrl.openStream(); Log.i("mustang", "is.available(): " + is.available()); 因此,我无法解析缓冲区。为什么我会收到内容类型?

谢谢,

1 个答案:

答案 0 :(得分:1)

Dropbox使用用户代理嗅探来确定它是否应显示灯箱(PDF的预览)。您所看到的是灯箱代码(如果您打印了内容,您可以告诉它)。

您需要添加一行指定非交互式用户代理,例如wget,方法是添加以下行:

URLConnection connection = fileUrl.openConnection();
connection.setRequestProperty("User-Agent", "Wget/5.0");

这通常会覆盖Dropbox的智能内容预览代码。