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;
}
}