URL 인코딩을 도와주세요 :
http://dsxsd.com/def/fss/default/files/10 رسم الصباح - 1.mp3
Android 앱에서이 파일을 다운로드해야합니다. URL 연결을 시도 할 때 404가 표시되지만 브라우저에서는 URL이 작동합니다. 브라우저 인코딩 URL을 붙여 넣으면 제대로 작동합니다.
그러나 나는 서버에서 오는 이와 같은 URL을 가지고 있기 때문에 하드 코어 할 수 없습니다.
Urlencoder.encode (url, "UTF-8"); 사용하여 인코딩을 시도했습니다. 하지만 서버 호출이 잘못된 URL을 제공합니다. "java.net.MalformedURLException : 프로토콜을 찾을 수 없음 : http % 3A % 2F % ........
이 URL은 별도의 경로 매개 변수와 쿼리 매개 변수를 별도로 인코딩하지 마십시오.
제발 도와주세요.
URL 만있는 경우이 방법을 사용하십시오.
private String encodeUrl(String link) throws UnsupportedEncodingException {
Uri uri = (Uri.parse(link));
String result = null;
if (Objects.equals(uri.getScheme(), "content")) {
try (Cursor cursor = getContentResolver().query(uri, null, null, null, null)) {
if (cursor != null && cursor.moveToFirst()) {
result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
}
}
}
if (result == null) {
result = uri.getPath();
int cut = Objects.requireNonNull(result).lastIndexOf('/');
if (cut != -1) {
result = result.substring(cut + 1);
}
}
return link.replace(result
,URLEncoder.encode(result, "UTF-8")
.replace("+", "%20"));
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다