首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android-检测URL MIME类型?

Android 检测 URL MIME 类型

在 Android 应用中,常常需要处理不同的 MIME 类型数据,例如图片、音频、视频等。在 Android 中,可以使用 URLConnectionHttpUrlConnection 类来检测 URL 的 MIME 类型。以下是一个简单的示例代码:

代码语言:java
复制

import android.net.Uri;

import android.os.Build;

import android.support.annotation.NonNull;

import android.util.Log;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class UrlMimeDetector {

代码语言:txt
复制
private static final String TAG = "UrlMimeDetector";
代码语言:txt
复制
private static final String DEFAULT_MIME_TYPE = "application/octet-stream";
代码语言:txt
复制
private String mimeType = DEFAULT_MIME_TYPE;
代码语言:txt
复制
public UrlMimeDetector() {
代码语言:txt
复制
}
代码语言:txt
复制
public String getMimeType(String url) {
代码语言:txt
复制
    if (!url.startsWith("http")) {
代码语言:txt
复制
        return DEFAULT_MIME_TYPE;
代码语言:txt
复制
    }
代码语言:txt
复制
    Uri uri = Uri.parse(url);
代码语言:txt
复制
    String path = uri.getPath();
代码语言:txt
复制
    if (path == null) {
代码语言:txt
复制
        path = "";
代码语言:txt
复制
    }
代码语言:txt
复制
    String extension = getExtension(path);
代码语言:txt
复制
    if (extension == null) {
代码语言:txt
复制
        return DEFAULT_MIME_TYPE;
代码语言:txt
复制
    }
代码语言:txt
复制
    mimeType = getMimeTypeFromExtension(extension);
代码语言:txt
复制
    if (mimeType == null) {
代码语言:txt
复制
        return DEFAULT_MIME_TYPE;
代码语言:txt
复制
    }
代码语言:txt
复制
    return mimeType;
代码语言:txt
复制
}
代码语言:txt
复制
private String getExtension(String path) {
代码语言:txt
复制
    if (path.length() == 0) {
代码语言:txt
复制
        return null;
代码语言:txt
复制
    }
代码语言:txt
复制
    int dotIndex = path.lastIndexOf(".");
代码语言:txt
复制
    if (dotIndex == -1) {
代码语言:txt
复制
        return null;
代码语言:txt
复制
    }
代码语言:txt
复制
    return path.substring(dotIndex + 1);
代码语言:txt
复制
}
代码语言:txt
复制
private String getMimeTypeFromExtension(String extension) {
代码语言:txt
复制
    if (extension == null) {
代码语言:txt
复制
        return null;
代码语言:txt
复制
    }
代码语言:txt
复制
    if (extension.equals("pdf")) {
代码语言:txt
复制
        return "application/pdf";
代码语言:txt
复制
    } else if (extension.equals("png")) {
代码语言:txt
复制
        return "image/png";
代码语言:txt
复制
    } else if (extension.equals("jpg") || extension.equals("jpeg")) {
代码语言:txt
复制
        return "image/jpeg";
代码语言:txt
复制
    } else if (extension.equals("gif")) {
代码语言:txt
复制
        return "image/gif";
代码语言:txt
复制
    } else if (extension.equals("bmp")) {
代码语言:txt
复制
        return "image/bmp";
代码语言:txt
复制
    } else if (extension.equals("txt")) {
代码语言:txt
复制
        return "text/plain";
代码语言:txt
复制
    } else if (extension.equals("json")) {
代码语言:txt
复制
        return "application/json";
代码语言:txt
复制
    } else if (extension.equals("xml")) {
代码语言:txt
复制
        return "text/xml";
代码语言:txt
复制
    } else if (extension.equals("zip")) {
代码语言:txt
复制
        return "application/zip";
代码语言:txt
复制
    } else if (extension.equals("7z")) {
代码语言:txt
复制
        return "application/x-7z-compressed";
代码语言:txt
复制
    } else if (extension.equals("flv")) {
代码语言:txt
复制
        return "video/x-flv";
代码语言:txt
复制
    } else if (extension.equals("mp4")) {
代码语言:txt
复制
        return "video/mp4";
代码语言:txt
复制
    } else if (extension.equals("mov")) {
代码语言:txt
复制
        return "video/quicktime";
代码语言:txt
复制
    } else if (extension.equals("avi")) {
代码语言:txt
复制
        return "video/x-msvideo";
代码语言:txt
复制
    } else if (extension.equals("wmv")) {
代码语言:txt
复制
        return "video/x-ms-wmv";
代码语言:txt
复制
    } else if (extension.equals("html")) {
代码语言:txt
复制
        return "text/html";
代码语言:txt
复制
    } else if (extension.equals("css")) {
代码语言:txt
复制
        return "text/css";
代码语言:txt
复制
    } else if (extension.equals("js")) {
代码语言:txt
复制
        return "application/javascript";
代码语言:txt
复制
    } else if (extension.equals("json")) {
代码语言:txt
复制
        return "application/json";
代码语言:txt
复制
    } else if (extension.equals("pdf")) {
代码语言:txt
复制
        return "application/pdf";
代码语言:txt
复制
    } else if (extension.equals("txt")) {
代码语言:txt
复制
        return "text/plain";
代码语言:txt
复制
    } else if (extension.equals("xml")) {
代码语言:txt
复制
        return "text/xml";
代码语言:txt
复制
    } else if (extension.equals("svg")) {
代码语言:txt
复制
        return "image/svg+xml";
代码语言:txt
复制
    } else if (extension.equals("ttf")) {
代码语言:txt
复制
        return "application/x-font-ttf";
代码语言:txt
复制
    } else if (extension.equals("
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券