Httpclient ile web sayfalarını çağırmak istiyordum fakat şirketimde proxy vardı buda yetmiyormuş gibi birde Basic authentication yerine NTLM authentication ı kullanıyorlardı.Kısa bir araştırma sonrasında NTLM desteğinin apache kütüphanesine 4.1.1 versiyonunda geldiğini gördüm ve ilk olarak kütüphanemi güncelledim.Daha sonra setProxy metodumu aşağıdaki gibi değiştirdim.Sonuç bingo :)
public static void setProxy(String proxyHost, int proxyPort, String username, String password,String proxydomainname,String pcname,String pcdomainname) {
httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(proxyHost, proxyPort, proxydomainname),
new NTCredentials(username, password,pcname,pcdomainname)
);
setProxy(proxyHost, proxyPort);
}
public static void setProxy(String proxyHost, int proxyPort) {
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
}
Hiç yorum yok:
Yorum Gönder