0

私は、アンドロイドのhttpclientとスプリングスAndroid Resttemplate(1.0.0.M4)のビルドをAndroidアプリで使用しています。私は基本認証で認証しています。どのようにcredencoding設定apache android httpclient

私は、リクエストを行う際に設定する必要があることがいくつかあります。最も重要なのは、資格情報の文字セットです。デフォルトはUS-Asciiで、ノルディック文字はISO-8859に設定しない限り動作しません。

私はHttpClientをを使用していることでした

HttpClient httpClient = new HttpClient(); 
    Credentials defaultcreds = new UsernamePasswordCredentials(msisdn, password); 
    httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM), defaultcreds); 
    httpClient.getParams().setSoTimeout(prefs.getServerTimeout()); 
    httpClient.getParams().setConnectionManagerTimeout(3000); 
    httpClient.getParams().setContentCharset("UTF-8"); 
    httpClient.getParams().setCredentialCharset("ISO-8859-1",) 

を私は今、自分のライブラリをアップグレードしようとしている、ともビルトインHTTPClientの依存関係を取り除きます。

私はresttemplate 2.0にアップグレードしており、apacheのhttpclient-androidをインポートしました。

<dependency> 
     <groupId>org.springframework.android</groupId> 
     <artifactId>spring-android-rest-template</artifactId> 
     <version>2.0.0.M3</version> 
     <!--version>1.0.0.M4</version--> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient-android</artifactId> 
     <version>4.3.5.1</version> 
    </dependency> 

上記のjarファイルのどちらもがどこかのHttpClientクラスを持っている

...私はつらい時、私が好きなこの作業を行うことがあります
  1. を:私の依存関係があるので、私は、Mavenを使用しています。 Androidの1つは推奨されていないので、私はそれに依存したくありません。

  2. ドキュメントによると、Basic Authは以下のコードに従って実行する必要があります。しかし、私は資格情報の文字セットを設定する場所を見つけることができません!

    HttpAuthentication authHeader = new HttpBasicAuthentication(msisdn、password); HttpHeadersのrequestHeaders =新しいHttpHeaders(); requestHeaders.setAuthorization(authHeader); HttpEntity requestEntity =新しいHttpEntity(requestHeaders);

誰かが私を助けることができたら嬉しいです。 https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client

:あなたがここでより多くの情報を見つけることができます

android { 
    useLibrary 'org.apache.http.legacy' 
} 

:あなたは、Android上で非推奨のApache HTTPクライアントを使用したい場合は、AndroidのGradleプラグインのuseLibrary宣言によってビルドに追加することができ

+0

'cz.msebera.android:HTTPClientは:4.4.1.1'' cz.msebera.android.httpclientを持っています.client.HttpClient'。これは[この本のサンプル](https://github.com/commonsguy/cw-omnibus/tree/master/Internet/HTTPStacks)と[このNetCipherコード](https://github.com/guardianproject/)で使用したものですNetCipher/tree/master/libnetcipher-httpclient)。基本的な認証文字セットに関しては、わかりません。 – CommonsWare

+0

よろしくお願いいたします。残念ながらSpringのRestClientでは動作しませんので、残りのオブジェクトの作業とテストを行う別の方法を見つけなければなりません。 – Mathias

答えて

関連する問題