1

Тема: Socket is closed вконтакте

Здравствуйте, никак не могу понять в чем проблема

Exception in thread "main" java.net.SocketException: Socket is closed

 
public class InsecureHttpClientFactory {
DefaultHttpClient hc;
public DefaultHttpClient buildHttpClient() throws NoSuchAlgorithmException,
KeyManagementException,
KeyStoreException,
UnrecoverableKeyException {
hc = new DefaultHttpClient();
//configureProxy();
configureCookieStore();
configureSSLHandling();
return hc;
}
 
private void configureProxy() {
HttpHost proxy = new HttpHost("proxy.example.org", 3182);
hc.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
}
 
private void configureCookieStore() {
CookieStore cStore = new BasicCookieStore();
hc.setCookieStore(cStore);
}
 
private void configureSSLHandling() throws NoSuchAlgorithmException,
KeyManagementException,
KeyStoreException,
UnrecoverableKeyException {
Scheme http =
new Scheme("http", 80, PlainSocketFactory.getSocketFactory());
SSLSocketFactory sf = buildSSLSocketFactory();
Scheme https = new Scheme("https", 443, sf);
SchemeRegistry sr = hc.getConnectionManager().getSchemeRegistry();
sr.register(http);
sr.register(https);
}
 
private SSLSocketFactory buildSSLSocketFactory() throws NoSuchAlgorithmException,
KeyManagementException,
KeyStoreException,
UnrecoverableKeyException {
TrustStrategy ts = new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] x509Certificates,
String s) throws CertificateException {
return true; // heck yea!
}
};
 
SSLSocketFactory sf = null;
 
try {
/* build socket factory with hostname verification turned off. */
sf =
new SSLSocketFactory(ts, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
 
return sf;
}
 
}
   postform.add(new BasicNameValuePair("q", "1"));
    postform.add(new BasicNameValuePair("ip_h", ip_h));
    postform.add(new BasicNameValuePair("from_host", "api.vkontakte.ru"));
    postform.add(new BasicNameValuePair("to", to_h));
    postform.add(new BasicNameValuePair("expire", "0"));
    postform.add(new BasicNameValuePair("email", login));
    postform.add(new BasicNameValuePair("pass", pass));
    post.setEntity(new UrlEncodedFormEntity(postform, "UTF-8"));
    response = httpclient.execute(post);
    post.abort();
    //Если редирект есть - вход подтвержден. Переход на страницу разрешения доступа к функциям апи
    HeaderLocation = response.getFirstHeader("location").getValue();
    post = new HttpPost(HeaderLocation);
    response = httpclient.execute(post);
    post.abort();
    System.out.println("HeaderLocation" + HeaderLocation);
    //подтверждать доступ нужно только при первой авторизации! при все последующий нас автоматически будет перебрасывать на страницу с access_token
    //извлекаем ссылку для подтверждения доступа к функциям..
    String body = EntityUtils.toString(response.getEntity());

На последней строчке обрывается.
Может кто что подсказать ?

Отредактировано stim_alex (2013-10-09 22:30)