GVKun编程网logo

android – 如何使用每个应用程序一个HttpClient?(android多个application)

14

此处将为大家介绍关于android–如何使用每个应用程序一个HttpClient?的详细内容,并且为您解答有关android多个application的相关问题,此外,我们还将为您介绍关于Androi

此处将为大家介绍关于android – 如何使用每个应用程序一个HttpClient?的详细内容,并且为您解答有关android多个application的相关问题,此外,我们还将为您介绍关于Android 6.0 sdk 23 中使用HttpClient、Android HttpClient、android httpClient (https/http) 的优化构建方式二、Android HttpClient Cookie的有用信息。

本文目录一览:

android – 如何使用每个应用程序一个HttpClient?(android多个application)

android – 如何使用每个应用程序一个HttpClient?(android多个application)

我正在寻找一种有效的方法来使用HttpClient我的 Android应用程序.
我在不同的活动中使用HttpClients,我想只为应用程序使用一个客户端并将其传递给活动.即使我查看了一些答案,我也无法找到一种方法,只使用一个客户端进行我的几项活动.

你能解释一下如何使用示例代码实现这种模式吗?

谢谢.

解决方法

在实现这样的HttpClient之前,您需要记住以下几点.

>使用Singleton模式可以实现客户端的单个实例.
>确保使用线程在后台进行所有下载,不要使用UI线程.
>维护所有下载请求的队列.单个Activity可以有多个请求,可以在填充之前下载各种组件,如数据,图像等.所有这些请求都需要排队并一个接一个地运行.
>如果在HttpClient队列清除之前切换了一个Activity,则应清除队列,以免它停止加载新活动的组件.

希望能帮助到你.

Android 6.0 sdk 23 中使用HttpClient

Android 6.0 sdk 23 中使用HttpClient

Android 6.0已经不使用HttpClient了,可以看到已经无法import HttpClient相关的包了,如果你硬要使用,除了下载jar包放在lib外,还有更好的解决办法:http://stackoverflow.com/questions/32153318/httpclient-wont-import-in-android-studio

If you need sdk 23, add this to your gradle:
android {
    useLibrary ''org.apache.http.legacy''
}

 

Android HttpClient

Android HttpClient

Android4.0 之后对使用网络有特殊要求,已经无法再在主线程中访问网络了,必须使用多线程访问的模式,

android httpClient (https/http) 的优化构建方式二

android httpClient (https/http) 的优化构建方式二

由于时间原因,这里只构建所有请求 https 都能通过的请求 client

首先定义(重写)信任管理器

    public class SSLTrustManager implements javax.net.ssl.TrustManager,
            javax.net.ssl.X509TrustManager ,HostnameVerifier{
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
        }
 
        public boolean isServerTrusted(
                java.security.cert.X509Certificate[] certs) {
            return true;
        }
 
        public boolean isClientTrusted(
                java.security.cert.X509Certificate[] certs) {
            return true;
        }
 
        public void checkServerTrusted(
                java.security.cert.X509Certificate[] certs, String authType)
                throws java.security.cert.CertificateException {
            return;
        }
 
        public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, String authType)
                throws java.security.cert.CertificateException {
            return;
        }
        
        	@Override
		public boolean verify(String urlHostName, SSLSession session) //允许所有主机
			return true;
		}
    }

然后封装

 public static HttpURLConnection connect(String strUrl) throws Exception {
        
    	 javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
         javax.net.ssl.TrustManager tm = new SSLTrustManager();
         trustAllCerts[0] = tm;
         javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext
                 .getInstance("SSL");
         sc.init(null, trustAllCerts, null);
         javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc
                 .getSocketFactory());
         
         HttpsURLConnection.setDefaultHostnameVerifier((HostnameVerifier) tm);
         
        URL url = new URL(strUrl);
        HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
     
        return urlConn;
    }

测试一下

public void unitest()
{
     HttpURLConnection urlConn = connect(''https://github.com/'');
        urlConn.setDoInput(true);
        urlConn.setRequestMethod("GET");
        urlConn.connect();
        InputStream is = urlConn.getInputStream();
        StringBuffer sb = new StringBuffer();
        if(is!=null)
        {
        	BufferedReader br = new BufferedReader(new InputStreamReader(is));
        	String s = null;
        	while ((s=br.readLine())!=null)
        	{
				sb.append(s).append("\n");
			}
        }
        System.out.println("Content:\n"+sb.toString());
}

try do it!

Android HttpClient Cookie

Android HttpClient是否具有Cookie的自动管理功能?

解决方法

它支持它.

阅读下面的帖子似乎是在调用执行时必须传递相同的HttpContext.

response = httpClient.execute(httpPost,localContext);

究竟该怎么办就是在这篇文章:Android project using httpclient –> http.client (apache),post/get method

How do I manage cookies with HttpClient in Android and/or Java?

今天的关于android – 如何使用每个应用程序一个HttpClient?android多个application的分享已经结束,谢谢您的关注,如果想了解更多关于Android 6.0 sdk 23 中使用HttpClient、Android HttpClient、android httpClient (https/http) 的优化构建方式二、Android HttpClient Cookie的相关知识,请在本站进行查询。

本文标签: