我正在尝试获取在线pdf文件的输入流,但该过程无效。 URLConnection
将content 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());
因此,我无法解析缓冲区。为什么我会收到内容类型?
谢谢,
答案 0 :(得分:1)
Dropbox使用用户代理嗅探来确定它是否应显示灯箱(PDF的预览)。您所看到的是灯箱代码(如果您打印了内容,您可以告诉它)。
您需要添加一行指定非交互式用户代理,例如wget,方法是添加以下行:
URLConnection connection = fileUrl.openConnection();
connection.setRequestProperty("User-Agent", "Wget/5.0");
这通常会覆盖Dropbox的智能内容预览代码。