質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

557閲覧

ASyncHTTPClientを利用した通信

Fx000000

総合スコア6

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/12/24 18:19

###前提・実現したいこと
ボタンをクリックするとサイトを読み込むだけの簡単なアプリを開発しようとしています。

###発生している問題・エラーメッセージ
AsyncHTTPClientのサンプルを元に実装した所エラーが発生し、ほぼサンプルをコピーした場合でもエラーが発生します。
過去の投稿を見た所もうASyncHTTPClientは使えない?(https://teratail.com/questions/54064)という投稿も見たのですが理解できていない状態です。

Error:(31, 54) エラー: AsyncHttpResponseHandlerに適切なコンストラクタが見つかりません(MainActivity) コンストラクタ AsyncHttpResponseHandler.AsyncHttpResponseHandler(Looper)は使用できません (引数の不一致: MainActivityをLooperに変換できません:) コンストラクタ AsyncHttpResponseHandler.AsyncHttpResponseHandler(boolean)は使用できません (引数の不一致: MainActivityをbooleanに変換できません:) Error:(38, 21) エラー: メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません Error:(31, 89) エラー: <anonymous com.example.hoge.httptest.MainActivity$1>はabstractでなく、AsyncHttpResponseHandler内のabstractメソッドonFailure(int,Header[],byte[],Throwable)をオーバーライドしません Error:(43, 21) エラー: メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません

###該当のソースコード

Java

1package com.example.hoge.httptest; 2 3import android.app.ProgressDialog; 4import android.preference.PreferenceActivity; 5import android.support.v7.app.AppCompatActivity; 6import android.os.Bundle; 7import android.util.Log; 8import android.view.View; 9import android.widget.Button; 10import android.widget.Toast; 11import com.loopj.android.http.*; 12 13 14public class MainActivity extends AppCompatActivity implements View.OnClickListener { 15 AsyncHttpClient client = new AsyncHttpClient(); 16 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 } 23 24 public void onClick(View view) { 25 switch (view.getId()) { 26 27 case R.id.b1: 28 Toast.makeText(MainActivity.this, "クリックされました!", Toast.LENGTH_LONG).show(); 29 30 31 client.get("https://www.google.com", new AsyncHttpResponseHandler(this) { //ここのAsyncHttpResponseHandlerが赤線 32 33 @Override 34 public void onStart() { 35 // called before request is started 36 } 37 38 @Override 39 public void onSuccess(int statusCode, PreferenceActivity.Header[] headers, byte[] response) { 40 // called when response HTTP status is "200 OK" 41 } 42 43 @Override 44 public void onFailure(int statusCode, PreferenceActivity.Header[] headers, byte[] errorResponse, Throwable e) { 45 // called when response HTTP status is "4XX" (eg. 401, 403, 404) 46 } 47 48 @Override 49 public void onRetry(int retryNo) { 50 // called when request is retried 51 } 52 }); 53 54 break; 55 } 56 57 58 } 59} 60

###試したこと
上記の通りASyncHTTPClientはもう使えないかもしれないという投稿のリンク先(https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html?hl=ja#boringSSL)にありました、そのままレガシーで使う場合の以下の文面をbuild.gradleに追加してみましたがだめでした。

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

###補足情報(言語/FW/ツール等のバージョンなど)
AndroidStudio3.0にて開発

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

コード上の問題なんじゃないでしょうか。ざっと見た感じですが、以下の部分の訂正が必要そうです。

Java

1× import android.preference.PreferenceActivity; 2import cz.msebera.android.httpclient.Header; 3 4× client.get("https://www.google.com", new AsyncHttpResponseHandler(this) { 5○ client.get("https://www.google.com", new AsyncHttpResponseHandler() { 6 7× public void onSuccess(int statusCode, PreferenceActivity.Header[] headers, byte[] response) { 8public void onSuccess(int statusCode, Header[] headers, byte[] response) { 9 10× public void onFailure(int statusCode, PreferenceActivity.Header[] headers, byte[] errorResponse, Throwable e) { 11public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {

投稿2017/12/25 15:22

keicha_hrs

総合スコア6766

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問