Здравствуйте, никак не могу понять в чем проблема
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());
На последней строчке обрывается.
Может кто что подсказать ?
Там может порт у https не верный...