작업을 하다 보면 간혹 사용해야 하는 url에 암호가 걸려있는 경우가 있다.
이런 케이스에 웹 브라우저를 통해 url에 접근하면 아래와 같은 팝업이 발생한다.
소스 작업을 하면서 이런 url에 접근하기 위해서는 header에 권한을 부여해 주어야 한다.
일반적으로 url에 접근할 때에는 GlideUrl 클래스를 사용한다.
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.load.model.LazyHeaderFactory;
import com.bumptech.glide.load.model.LazyHeaders;
public class MainActivity extends AppCompatActivity {
private String sampleUrl = "http://dummy.url.com"
private static final String AUTHORIZATION = "saMpleAUthoRizaTion="
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setGlideUrlAuthorization();
setGlideUrlBuilder();
}
//방법1
public void setGlideUrlAuthorization(){
GlideUrl imageUrl = new GlideUrl(sampleUrl, new LazyHeaders.Builder()
.addHeader("Authorization", AUTHORIZATION).build());
}
//방법2
public void setGlideUrlBuilder(){
GlideUrl imageUrl = new GlideUrl(sampleUrl, new LazyHeaders.Builder()
.addHeader("Authorization", new LazyHeaderFactory() {
@Nullable
@Override
public String buildHeader() {
return AUTHORIZATION;
}
}).build());
}
}
방법은 두가지를 사용했으며 크게 다르지 않다.
우선 GlideUrl로 해당 이미지의 url을 로드한다.
new GlideUrl의 두 번 째 인자에 header를 추가하여 해당하는 사용자명과 암호를 작성하면 된다.
방법1과 2가 다른 점은 LazyHeaderFactory를 사용하여 header를 직접 빌드하였느냐 아니냐의 차이이며
두 가지 다 정상 동작하는 것을 확인할 수 있다.
저렇게 추출해낸 url을 Glide.load()를 통해 화면에 표시하면 된다.
'JAVA > Android' 카테고리의 다른 글
[JAVA][Android] 화면 변경을 감지하는 ViewTreeObserver (0) | 2022.08.31 |
---|---|
[JAVA][Android] Thread와 Handler의 사용법과 동기화 (0) | 2022.08.29 |
[JAVA][Android] SpannableStringBuilder로 TextView의 일부에만 스타일 지정하기 (0) | 2022.08.05 |
[JAVA][Android] Bundle로 클래스 객체 전달하기 (0) | 2022.07.26 |
[JAVA][Android] JSON / GSON / JACKSON (0) | 2022.07.21 |