2017-05-23 8 views
0

ブラウザを使用して画像をダウンロードすると、その回答が得られます。レスポンスが返されないretrofit2

私はAndroidとRetrofit2を使用して画像をダウンロードするのに同じサーバーを使用します。画像はうねりがよく、端末で処理した結果が表示されますが、アプリケーションには何も表示されません。ここで

resultCall.enqueue(new Callback<Result>() { 

     @Override 
     public void onResponse(Call<Result> call, Response<Result> response) { 
      // Response Success or Fail 
      if (response.isSuccessful()) { 
       if (response.body().getResult().equals("success")) { 
        Snackbar.make(parentView, R.string.string_upload_success, Snackbar.LENGTH_LONG).show(); 
        Log.i("onResponse", "File Uploaded Successfully"); 
       } else { 
        Snackbar.make(parentView, R.string.string_upload_fail, Snackbar.LENGTH_LONG).show(); 
        Log.i("onResponse", " Something went wrong"); 
       } 
      } else { 
       Snackbar.make(parentView, R.string.string_upload_fail, Snackbar.LENGTH_LONG).show(); 
       Log.i("onResponse", " Something went wrong"); 
      } 

     } 

     @Override 
     public void onFailure(Call<Result> call, Throwable t) { 
      Log.i("onFailure", t.getMessage()); 
      Log.e("onFailure", Arrays.toString(t.getStackTrace())); 
     } 
    }); 

はエラーです

com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220), 
retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37), 
retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyC onverter.java:25), retrofit2.ServiceMethod.toResponse(ServiceMethod.java:116), 
retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:211), 
retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:106), 
okhttp3.RealCall$AsyncCall.execute(RealCall.java:133), 
okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32), 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113), 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588), 
java.lang.Thread.run(Thread.java:818) 

そして

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ 

結果クラス:

public class Result { 

    @SerializedName("result") 
    @Expose 
    private String result; 

    /** 
    * @return The result 
    */ 
    public String getResult() { 
     return result; 
    } 

    /** 
    * @param result The result 
    */ 
    public void setResult(String result) { 
     this.result = result; 
    } 

} 
+0

投稿結果クラス –

+0

私は結果クラスを追加します – zaki

答えて

1

私は同じエラーをしてきた、主な問題

あなたはAPIから取得している応答は、配列形式で

あるしかし、あなたはオブジェクト形式で取得しようとしています。

応答モデルを確認してください。

+0

はい、応答は配列形式ですが、私は最初の要素を送信しています。 NodeZs 'res.send(result [0])のコード – zaki

+0

Resultクラスの結果の型をStringからArrayListに変更します ThanK you @zuhad – zaki

+0

ようこそ:) – Zuhad

関連する問題