12

Android M Developer Preview で Volley の HurlStack をテストしています。

compileSdkVersionから22に変更した後'android-MNC'、org.apache.http のすべてのクラスがコンパイルされません。

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicHttpResponse;
import org.apache.http.message.BasicStatusLine;

この問題を解決するためにコードを変更するにはどうすればよいですか?

Apache HTTP クライアントに関連するいくつかの変更があることは知っていますが、手順に従って gradle を追加してもまだ機能しませんuseLibrary 'org.apache.http.legacy'

参考:HurlStack.java AOSP

動作の変更: Apache HTTP クライアントの削除

4

4 に答える 4

4

公式の「動作の変更点」ドキュメントに、Android M で Apache HTTP クライアントが削除されたと記載されています。非推奨ではなく、削除されています。個人的には、KitKat 以降エンジンとして実際に使用されているOkHttpHttpURLConnectionに切り替えることを強くお勧めします。依存関係を使用することで、Square チームからすべての新鮮な機能を直接取得できます。

于 2015-08-04T21:27:28.897 に答える
1

Volley はまだ API 22 を使用してコンパイルされているため、これらの警告は無視できます: https://github.com/mcxiaoke/android-volley/blob/master/gradle.properties

これらをプロガード構成に追加します: -dontwarn org.apache.http.** -dontwarn com.android.volley.toolbox.**

于 2015-10-04T09:37:16.773 に答える
0

私のように、HttpClient を含めた唯一の理由が、HTTP 応答コードをテストしていたからである場合:

if (error.networkResponse.statusCode == HttpStatus.SC_UNAUTHORIZED) {}

単純な修正は、HttpURLConnection クラスにある定数のバージョンを使用することです。

if (error.networkResponse.statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {}
于 2015-11-20T17:00:52.397 に答える