import android.os.AsyncTask;
import android.util.Log;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class UrlUtils {
public static void checkUrlType(String urlStr, OnUrlTypeCheckedListener listener) {
new CheckUrlTypeTask(listener).execute(urlStr);
}
private static class CheckUrlTypeTask extends AsyncTask<String, Void, String> {
private OnUrlTypeCheckedListener listener;
CheckUrlTypeTask(OnUrlTypeCheckedListener listener) {
this.listener = listener;
}
@Override
protected String doInBackground(String... params) {
String urlStr = params[0];
try {
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("HEAD");
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
String contentType = connection.getContentType();
if (contentType != null && contentType.startsWith("image")) {
return "图片";
} else if (contentType != null && contentType.startsWith("video")) {
return "视频";
}
}
} catch (IOException e) {
Log.e("CheckUrlTypeTask", "Error checking URL type: " + e.getMessage());
}
return "未知类型";
}
@Override
protected void onPostExecute(String result) {
if (listener != null) {
listener.onUrlTypeChecked(result);
}
}
}
public interface OnUrlTypeCheckedListener {
void onUrlTypeChecked(String type);
}
}