0

I am sending Base64 encoded String via Header with using Retrofit,I got success mesages from services but I got errror in response.body

error: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $

how can I get JsonObject as a correctly without changing Server JsonObject format

RetroClient Class

public static Retrofit getClientFile(String url) {

    String BaseUrl = url + "/";

    Gson gson = new GsonBuilder()
            .setLenient()
            .create();

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

    return new Retrofit.Builder()
            .baseUrl(BaseUrl)
            .addConverterFactory(ScalarsConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .client(client)
            .build();
}

RestInterface Class

public interface RestInterface {

    @GET(".")
    Call<FileResult> doGetFile(@Header("Authorization") String authHeader);
}

DownloadFile Class

public static void downloadFile(String headerData){

    RestInterface restInterface = RetroClient.getClientFile(urlList.get(0)).create(RestInterface.class);
    Call<FileResult> call = restInterface.doGetFile(headerData);
    call.enqueue(new Callback<FileResult>() {
        @Override
        public void onResponse(Call<FileResult> call, Response<FileResult> response) {

            if(response.isSuccessful()){
                Log.d("Downloading FileResult:","" + response.body());
            }

        }

        @Override
        public void onFailure(Call<FileResult> call, Throwable t) {
            Log.e("TAG", "error" + t.getMessage());
        }
    });

}

FileResult class

public class FileResult {

    @SerializedName("Date")
    public String Date;

    public String getDate() {
        return Date;
    }

    public void setDate(String date) {
        Date = date;
    }


}
Raj Paliwal
  • 817
  • 1
  • 7
  • 19
Diego
  • 769
  • 3
  • 17
  • 1
    Can you post **FileResult** ? – SkypeDogg Dec 12 '19 at 11:14
  • FileResult is empty now – Diego Dec 12 '19 at 11:15
  • I mean class structure – SkypeDogg Dec 12 '19 at 11:16
  • Put FileResult.java here – NehaK Dec 12 '19 at 11:18
  • I added FileResult.java – Diego Dec 12 '19 at 11:23
  • 1
    Your FileResult.java is not matching with JSON you are getting in result from API. Can you post JSON you are getting from server? – NehaK Dec 12 '19 at 11:25
  • From Postman for example – SkypeDogg Dec 12 '19 at 11:35
  • I want to try download file url,url has .png file,it returns like this ����������������������� ���������������������������������������������������(��������������1���������������2������������������������������i�����������������������Apple��iPhone 6s��������H������������H������13.1.3����2019:11:05 16:04:53����#��������������l��������������t�"���������������'�������������������������0231�������������|���������������������������������������������������������������������� ������������������������Ē�� – Diego Dec 12 '19 at 11:37
  • can you add your api response? – Rajasekaran M Dec 12 '19 at 11:42

0 Answers0