use of com.google.gson.JsonParseException in project Douya by DreaminginCodeZH.
the class ApiRequest method parseNetworkResponse.
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
Gson gson = GsonHelper.get();
String responseString;
try {
responseString = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
}
try {
return Response.success(gson.<T>fromJson(responseString, mType), HttpHeaderParser.parseCacheHeaders(response));
} catch (JsonParseException | OutOfMemoryError e) {
LogUtils.e("Error when parsing response: " + responseString);
return Response.error(new ParseError(e));
}
}
use of com.google.gson.JsonParseException in project fc-java-sdk by aliyun.
the class DefaultFcClient method doAction.
public HttpResponse doAction(HttpRequest request, String form, String method) throws ClientException, ServerException {
request.validate();
try {
PrepareUrl prepareUrl = signRequest(request, form, method);
int retryTimes = 1;
HttpResponse response = HttpResponse.getResponse(prepareUrl.getUrl(), prepareUrl.getHeader(), request, method, config.getConnectTimeoutMillis(), config.getReadTimeoutMillis());
while (500 <= response.getStatus() && AUTO_RETRY && retryTimes < MAX_RETRIES) {
prepareUrl = signRequest(request, form, method);
response = HttpResponse.getResponse(prepareUrl.getUrl(), prepareUrl.getHeader(), request, method, config.getConnectTimeoutMillis(), config.getReadTimeoutMillis());
retryTimes++;
}
if (response.getStatus() >= 500) {
String requestId = response.getHeaderValue(HeaderKeys.REQUEST_ID);
String stringContent = response.getContent() == null ? "" : new String(response.getContent());
ServerException se;
try {
se = new Gson().fromJson(stringContent, ServerException.class);
} catch (JsonParseException e) {
se = new ServerException("InternalServiceError", "Failed to parse response content", requestId);
}
se.setStatusCode(response.getStatus());
se.setRequestId(requestId);
throw se;
} else if (response.getStatus() >= 300) {
ClientException ce;
if (response.getContent() == null) {
ce = new ClientException("SDK.ServerUnreachable", "Failed to get response content from server");
} else {
try {
ce = new Gson().fromJson(new String(response.getContent()), ClientException.class);
} catch (JsonParseException e) {
ce = new ClientException("SDK.ResponseNotParsable", "Failed to parse response content", e);
}
}
if (ce == null) {
ce = new ClientException("SDK.UnknownError", "Unknown client error");
}
ce.setStatusCode(response.getStatus());
ce.setRequestId(response.getHeaderValue(HeaderKeys.REQUEST_ID));
throw ce;
}
return response;
} catch (InvalidKeyException exp) {
throw new ClientException("SDK.InvalidAccessSecret", "Speicified access secret is not valid.");
} catch (SocketTimeoutException exp) {
throw new ClientException("SDK.ServerUnreachable", "SocketTimeoutException has occurred on a socket read or accept.");
} catch (IOException exp) {
throw new ClientException("SDK.ServerUnreachable", "Server unreachable: " + exp.toString());
} catch (NoSuchAlgorithmException exp) {
throw new ClientException("SDK.InvalidMD5Algorithm", "MD5 hash is not supported by client side.");
}
}
use of com.google.gson.JsonParseException in project Rutgers-Course-Tracker by tevjef.
the class SubjectFragment method showError.
@Override
public void showError(Throwable t) {
String message;
Resources resources = getContext().getResources();
if (t instanceof UnknownHostException) {
message = resources.getString(R.string.no_internet);
} else if (t instanceof JsonParseException || t instanceof RutgersServerIOException) {
message = resources.getString(R.string.server_down);
} else if (t instanceof RutgersDataIOException) {
notifySectionNotOpen();
getParentActivity().onBackPressed();
return;
} else if (t instanceof SocketTimeoutException) {
message = resources.getString(R.string.timed_out);
} else {
message = t.getMessage();
}
//error message finalized, now save it.
mViewState.errorMessage = message;
// Redirects the message that would usually be in the snackbar, to error layout.
if (!adapterHasItems()) {
showLayout(LayoutType.ERROR);
TextView textViewMessage = ButterKnife.findById(mErrorView, R.id.text);
textViewMessage.setText(message);
} else {
showSnackBar(message);
}
}
use of com.google.gson.JsonParseException in project Rutgers-Course-Tracker by tevjef.
the class CourseFragment method showError.
@Override
public void showError(Throwable t) {
String message;
Resources resources = getContext().getResources();
if (t instanceof UnknownHostException) {
message = resources.getString(R.string.no_internet);
} else if (t instanceof JsonParseException || t instanceof RutgersServerIOException) {
message = resources.getString(R.string.server_down);
} else if (t instanceof SocketTimeoutException) {
message = resources.getString(R.string.timed_out);
} else {
message = t.getMessage();
}
//error message finalized, now save it.
mViewState.errorMessage = message;
// Redirects the message that would usually be in the snackbar, to error layout.
if (!adapterHasItems()) {
showLayout(LayoutType.ERROR);
TextView textViewMessage = ButterKnife.findById(mErrorView, R.id.text);
textViewMessage.setText(message);
} else {
showSnackBar(message);
}
}
use of com.google.gson.JsonParseException in project Rutgers-Course-Tracker by tevjef.
the class TrackedSectionsFragment method showError.
@Override
public void showError(Throwable t) {
String message;
Resources resources = getContext().getResources();
if (t instanceof UnknownHostException) {
message = resources.getString(R.string.no_internet);
} else if (t instanceof JsonParseException || t instanceof RutgersServerIOException) {
message = resources.getString(R.string.server_down);
} else if (t instanceof SocketTimeoutException) {
message = resources.getString(R.string.timed_out);
} else {
message = t.getMessage();
}
// Save current error message ahead of config change.
mViewState.errorMessage = message;
// https://www.google.com/design/spec/patterns/errors.html#errors-app-errors
if (!adapterHasItems()) {
showLayout(LayoutType.ERROR);
TextView textViewMessage = ButterKnife.findById(mErrorView, R.id.text);
textViewMessage.setText(message);
} else {
showSnackBar(message);
}
}
Aggregations