android https post

来源:互联网 发布:微信默认浏览器是淘宝 编辑:程序博客网 时间:2024/06/05 16:57
import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;import java.security.KeyManagementException;import java.security.KeyStore;import java.security.KeyStoreException;import java.security.NoSuchAlgorithmException;import java.security.UnrecoverableKeyException;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import org.apache.http.HttpVersion;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.scheme.PlainSocketFactory;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;import org.apache.http.protocol.HTTP;public class SSLSocketFactoryEx extends SSLSocketFactory {        public static DefaultHttpClient getNewHttpClient() {          try {              KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());              trustStore.load(null, null);                          SSLSocketFactoryEx sf = new SSLSocketFactoryEx(trustStore);              sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);                  HttpParams params = new BasicHttpParams();              HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);              HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);                  SchemeRegistry registry = new SchemeRegistry();              registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));              registry.register(new Scheme("https", sf, 443));                  ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);                  return new DefaultHttpClient(ccm, params);          } catch (Exception e) {              return new DefaultHttpClient();          }      }          SSLContext sslContext = SSLContext.getInstance("TLS");                public SSLSocketFactoryEx(KeyStore truststore)                         throws NoSuchAlgorithmException, KeyManagementException,                        KeyStoreException, UnrecoverableKeyException {                super(truststore);                                TrustManager tm = new X509TrustManager() {                        public java.security.cert.X509Certificate[] getAcceptedIssuers() {return null;}                  @Override              public void checkClientTrusted(                            java.security.cert.X509Certificate[] chain, String authType)                                            throws java.security.cert.CertificateException {}                  @Override              public void checkServerTrusted(                            java.security.cert.X509Certificate[] chain, String authType)                                            throws java.security.cert.CertificateException {}        };          sslContext.init(null, new TrustManager[] { tm }, null);      }          @Override      public Socket createSocket(Socket socket, String host, int port,boolean autoClose) throws IOException, UnknownHostException {              return sslContext.getSocketFactory().createSocket(socket, host, port,autoClose);      }          @Override      public Socket createSocket() throws IOException {          return sslContext.getSocketFactory().createSocket();      }  }
    public String POST(String url,String postdata)    {long last = System.currentTimeMillis();    String result ="";    System.out.println(url);    try{        System.out.println(url);        HttpPost hPost=new HttpPost(url);        List <NameValuePair> params=new ArrayList<NameValuePair>();        String posts[]=postdata.split("&");        String posts2[];        int i;    for(i=0;i<posts.length;i++)    {    posts2=posts[i].split("=");    if(posts2.length==2)    params.add(new BasicNameValuePair (posts2[0],posts2[1]));    else params.add(new BasicNameValuePair (posts2[0],""));    }        HttpEntity hen=new UrlEncodedFormEntity(params,"gb2312");        hPost.setEntity(hen);        HttpClient httpclient = SSLSocketFactoryEx.getNewHttpClient();        httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);        //请求超时        httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);        //读取超时        HttpResponse hResponse;        hResponse = httpclient.execute(hPost);        long delaytime = System.currentTimeMillis()-last;        System.out.println(shangwang.delaytime);                if(hResponse.getStatusLine().getStatusCode()==200)        {        result = EntityUtils.toString(hResponse.getEntity());        //result = new String(result.getBytes("ISO_8859_1"),"gbk");        //转码        }    }    catch (Exception e)    {    e.printStackTrace();    }    return(result);    }


0 0
原创粉丝点击