gpt4 book ai didi

java - 替换已弃用的 org.apache.http.conn.scheme.SchemeRegistry、ThreadSafeClientConnManager 类等

转载 作者:行者123 更新时间:2023-12-02 01:47:15 25 4
gpt4 key购买 nike

我正在将我的代码移植到 android 6.0。由于 apache 类已在 API 23 中弃用并删除,因此我无法找到与之前的代码完全匹配的代码来建立 HTTPS 连接。以下是我的代码

try {


SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schemeRegistry.register(new Scheme("https",new CustomSSLSocketFactory(), 443));// new CustomSSLSocketFactory().newSslSocketFactory(context.getResources()), 443));

HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 120000);
ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(httpParameters, schemeRegistry);
httpClient = new DefaultHttpClient(cm, httpParameters);
setHttpClient(httpClient);

AbstractMediator.setServerTime(System.currentTimeMillis());
httpResponse = httpClient.execute(request);

serviceResponseObject.setResponseCode(httpResponse.getStatusLine().getStatusCode());
serviceResponseObject.setMessage(httpResponse.getStatusLine().getReasonPhrase());
serviceResponseObject.setAllHeader(httpResponse.getAllHeaders());


Header[] header = httpResponse.getAllHeaders();

}catch (UnknownHostException e){
Utility.printStackTrace(e);
serviceResponseObject.setResponseBody("");
return responseWithErrorCode(NETWORK_ERROR_CODE101, serviceResponseObject);
} catch (IOException e) {
Utility.printStackTrace(e);
return responseWithErrorCode(NETWORK_ERROR_CODE100, serviceResponseObject);
} catch (Exception e) {
Utility.printStackTrace(e);
return responseWithErrorCode(NETWORK_ERROR_CODE100, serviceResponseObject);
}

我已阅读此链接 Deprecated: org.apache.http.conn.scheme.scheme is deprecated 。它确实提到了方案类的新构造函数,但没有提到其余的方法。我的应用程序最低 API 级别是 14,如果有任何替代方法确实尊重它,我会很高兴。

我读过这篇文章'org.apache.http.HttpEntity' is deprecated. How to solve this error in android studio?其中讨论了使用 apache 旧版以及有关 Marek Sebera 的新 Android Apache HttpClient 包的其他解决方案,但这并不能满足我的目的。

我无法使用 Volley、Retrofit、OKHttp 等库,因为我有 Soap XML 格式的 Web 服务

我想完全从 apache 迁移出去。我关心的是知道 HttpsUrlConnection 类中的所有方法都可以用于替换。如果我能得到一个与此相关的代码,该代码完全按照我上面所做的操作,但使用新的 API 方法,我将不胜感激。我开始了解Registry、PoolingHttpClientConnectionManager等类,但我不明白如何使用它们来获得上述结果

最佳答案

Apache HTTP 客户端弃用

据 Google 称,在 Android 6.0 中,他们取消了对 Apache HTTP 客户端的支持。从 Android 9 开始,该库已从 bootclasspath 中删除,并且默认情况下不可用于应用。

因此,如果您仍然希望将其提供给您的应用程序,Google 也提供了解决方案。

AndroidManifest.xml 文件的应用程序内使用以下标记

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

有关迁移过程的更多详细信息,请参阅 Android 文档。 https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p

关于java - 替换已弃用的 org.apache.http.conn.scheme.SchemeRegistry、ThreadSafeClientConnManager 类等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37562189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com