Skip to content

Instantly share code, notes, and snippets.

@snadjafi
Last active February 14, 2017 13:10
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save snadjafi/9087546 to your computer and use it in GitHub Desktop.
Save snadjafi/9087546 to your computer and use it in GitHub Desktop.
[blipo] upload image using retrofit
byte[] photoByteArray = Files.toByteArray(photo.getImageFile());
BlipoApi blipoApi = setUpNetwork();
blipoApi.uploadPhoto(photoByteArray);
private BlipoApi setUpNetwork() {
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade requestFacade) {
String imageId = UUID.randomUUID().toString();
requestFacade.addHeader("Accept", "application/json");
requestFacade.addHeader("senderPhoneID", Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID));
requestFacade.addHeader("fileID", imageId);
requestFacade.addHeader("imageOrientation","0");
requestFacade.addHeader("fileSizeType", "2");
Log.d("UploadPhotoService", "image UUID is: " + imageId);
Log.d("UploadPhotoService", "google id is: " + Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID));
}
};
RestAdapter restAdapter = new RestAdapter.Builder()
.setLog(new RestAdapter.Log() {
@Override
public void log(String s) {
Log.d("blipo", s);
}
})
.setLogLevel(RestAdapter.LogLevel.FULL)
.setErrorHandler(getErrorHandler())
.setRequestInterceptor(requestInterceptor)
.setServer(API_URL)
.build();
return restAdapter.create(BlipoApi.class);
}
private ErrorHandler getErrorHandler() {
return new retrofit.ErrorHandler() {
private boolean isJsonResponse(Response response) {
for (retrofit.client.Header header : response.getHeaders())
if ((header.getName() != null) && header.getName().contains("Content-Type"))
if (header.getValue().contains("json"))
return true;
return false;
}
private String getMessage(InputStreamReader reader) {
BufferedReader r = new BufferedReader(reader);
StringBuilder total = new StringBuilder();
String line;
try {
while ((line = r.readLine()) != null) {
total.append(line);
}
} catch (IOException e) {
Log.w("blipo", e.getMessage());
}
return total.toString();
}
@Override
public Throwable handleError(RetrofitError retrofitError) {
Response response = retrofitError.getResponse();
if (response != null) {
InputStreamReader reader = null;
try {
if (response.getBody() != null)
reader = new InputStreamReader(response.getBody().in());
if ((reader != null) && isJsonResponse(response)) {
return new Gson().fromJson(reader, BlipoError.class);
} else {
BlipoError result = new BlipoError(response.getStatus());
if (reader != null)
result.setMessage(getMessage(reader));
result.setStackTrace(retrofitError.getStackTrace());
return result;
}
} catch (IOException e) {
Log.e("blipo", e.getMessage(), e);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
Log.e("blipo", e.getMessage() , e);
}
}
}
return new BlipoError(response.getStatus());
} else {
BlipoError result = new BlipoError(0);
result.setMessage(retrofitError.getMessage());
return result;
}
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment