Created
February 19, 2015 18:56
-
-
Save iftekhar-ahmed/dc9c9c50e8101f679920 to your computer and use it in GitHub Desktop.
Fix UTF-8 header issue with json response
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class SyncService extends Service { | |
private DbManager dbManager; | |
@Override | |
public IBinder onBind(Intent intent) { | |
throw new UnsupportedOperationException("Not yet implemented"); | |
} | |
@Override | |
public int onStartCommand(Intent intent, int flags, int startId) { | |
HttpHelper httpHelper = HttpHelper.getInstance(this); | |
DbManager.init(this); | |
dbManager = DbManager.getInstance(); | |
JsonArrayRequest menuRequest = new JsonArrayRequest(Config.getMenuUrl(), | |
new Response.Listener<JSONArray>() { | |
@Override | |
public void onResponse(JSONArray response) { | |
LogUtil.LOGE(response.toString()); | |
ContentMenu.updateDb(dbManager, JsonParser.getParsedContentMenus(response.toString())); | |
} | |
}, new Response.ErrorListener() { | |
@Override | |
public void onErrorResponse(VolleyError error) { | |
} | |
} | |
) { | |
@Override | |
protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) { | |
try { | |
final String TYPE_UTF8_CHARSET = "charset=UTF-8"; | |
String type = response.headers.get(HTTP.CONTENT_TYPE); | |
if (type == null) { | |
LogUtil.LOGE("content type was null"); | |
type = TYPE_UTF8_CHARSET; | |
response.headers.put(HTTP.CONTENT_TYPE, type); | |
} else if (!type.contains("UTF-8")) { | |
LogUtil.LOGE("content type had UTF-8 missing"); | |
type += ";" + TYPE_UTF8_CHARSET; | |
response.headers.put(HTTP.CONTENT_TYPE, type); | |
} | |
} catch (Exception e) { | |
//print stacktrace e.g. | |
} | |
return super.parseNetworkResponse(response); | |
} | |
}; | |
httpHelper.addToRequestQueue(menuRequest); | |
JsonArrayRequest topicRequest = new JsonArrayRequest(Config.getTopicUrl(), | |
new Response.Listener<JSONArray>() { | |
@Override | |
public void onResponse(JSONArray response) { | |
LogUtil.LOGE("topic url" + response.toString()); | |
DbContent.updateDb(dbManager, JsonParser.getParsedDbContents(response)); | |
Intent localIntent = new Intent(Constants.ACTION_RESPONSE); | |
LocalBroadcastManager.getInstance(SyncService.this).sendBroadcast( | |
localIntent); | |
} | |
}, new Response.ErrorListener() { | |
@Override | |
public void onErrorResponse(VolleyError error) { | |
} | |
} | |
) { | |
@Override | |
protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) { | |
try { | |
final String TYPE_UTF8_CHARSET = "charset=UTF-8"; | |
String type = response.headers.get(HTTP.CONTENT_TYPE); | |
if (type == null) { | |
LogUtil.LOGE("content type was null"); | |
type = TYPE_UTF8_CHARSET; | |
response.headers.put(HTTP.CONTENT_TYPE, type); | |
} else if (!type.contains("UTF-8")) { | |
LogUtil.LOGE("content type had UTF-8 missing"); | |
type += ";" + TYPE_UTF8_CHARSET; | |
response.headers.put(HTTP.CONTENT_TYPE, type); | |
} | |
} catch (Exception e) { | |
//print stacktrace e.g. | |
} | |
return super.parseNetworkResponse(response); | |
} | |
}; | |
httpHelper.addToRequestQueue(topicRequest); | |
LogUtil.LOGE("inside test service"); | |
return START_STICKY; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment