package org.droidplanner.lelefly.retrofit;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import okio.Buffer;
import retrofit2.Converter;
import retrofit2.Retrofit;public classStringConverterFactory extends Converter.Factory {private static final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=UTF-8");public staticStringConverterFactory create() {return newStringConverterFactory();
}privateStringConverterFactory() {
}
@Overridepublic ConverterresponseBodyConverter(Type type, Annotation[] annotations,
Retrofit retrofit) {return new Converter(){
@OverridepublicString convert(ResponseBody value) throws IOException {returnvalue.toString();
}
};
}
@Overridepublic Converter, RequestBody>requestBodyConverter(Type type,
Annotation[] parameterAnnotations, Annotation[] methodAnnotations, Retrofit retrofit) {return new Converter(){
@OverridepublicRequestBody convert(String value) throws IOException {
Buffer buffer= newBuffer();
Writer writer= new OutputStreamWriter(buffer.outputStream(), "utf-8");
writer.write(value);
writer.close();returnRequestBody.create(MEDIA_TYPE, buffer.readByteString());
}
};
}
}