本篇文章給大家分享的是有關(guān)Android中怎么利用post請求傳遞json數(shù)據(jù)給服務(wù)端,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
10年積累的做網(wǎng)站、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有晉中免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
入?yún)⒎庋b成JSON,EXAMPLE:
{ "uuid": "iamauuid", "clientType": "AND", "content": "{\"gender\":\"F\",\"name\":\"TTT\"}"}
其中content中是json的object,且要求把content中特殊的字符進(jìn)行轉(zhuǎn)義。
主要代碼如下:
/** * post請求用json的格式傳遞數(shù)據(jù)給服務(wù)器 * * @param callback */ public staticvoid postShareContent(Context context, T saveObject, final ShareSaveDataCallback callback) { final String uuid = StringUtils.generateUUID().replaceAll("-", ""); //利用Gson來處json數(shù)據(jù)和類模型之間的轉(zhuǎn)化 Gson gson = new Gson(); //把類模型對象轉(zhuǎn)化成json的數(shù)據(jù)模式 String contentJson = gson.toJson(saveObject); //用ShareEntity把內(nèi)容給封裝起來,再處理成json的格式 ShareEntity shareEntity = new ShareEntity(); //uuid本地端生成,有特殊的方法,下面會(huì)注解 shareEntity.uuid = uuid; shareEntity.clientType = "AND"; shareEntity.content = contentJson; //再用gson.toJson()處理會(huì)自動(dòng)把第二層的object對象的特殊字符轉(zhuǎn)義掉 String shareJson = gson.toJson(shareEntity); StringEntity entity = null; try { //把要傳給后端的json數(shù)據(jù),用StringEntity給封裝起來 entity = new StringEntity(shareJson,"UTF-8"); //注明:UTF-8是防止傳給后端時(shí)中文出現(xiàn)亂碼 } catch (UnsupportedEncodingException e) { e.printStackTrace(); } HttpApiClient.postJsonByAccessToken(context, ApiBaseUrl.getShareUrl(), entity, true, new ApiResponseHandler() { @Override public void onResponse(boolean success, JsonObject jsonObject, ErrorCode errCode) { super.onResponse(success, jsonObject, errCode); callback.onSaveResult(success, uuid, errCode); } }); }
postJsonByAccessToken的方法:
private static AsyncHttpClient mHttpClient = new AsyncHttpClient(); public static void postJsonByAccessToken(Context context, String url, StringEntity entity, boolean isCompleterUrl, AsyncHttpResponseHandler handler) { synchronized (mHttpClient) { addHeader(HEADER_TOKEN, token); if (!isCompleterUrl) { url = getCompleteUrl(url); } mHttpClient.post(context, url, entity, ApiParam.CONTENT_TYPE_JSON, handler); } } contentType的類型為:application/json /** public interface ApiParam { /** * json格式 */ String CONTENT_TYPE_JSON = "application/json"; }
其中生產(chǎn)本地的uuid方法如下:相當(dāng)于會(huì)自動(dòng)生產(chǎn)一組隨機(jī)數(shù)
public static String generateUUID() { return UUID.randomUUID().toString(); }
數(shù)據(jù)代碼的一部分:
{"clientType":"AND", "uuid":"e3ab0260286d442da86da7fac21e1cc7" "content":"{\"matchEventStats\":{\"extraTime\":0,\"timeLineModels\":[{\"downPlayerId\":0,\"id\":2188,\"playerHeadUrl\":\"http://7xj3pr.com1.z0.glb.clouddn.com/registration/user/head/image/rdGsidKZHjPzun6TMrTDyMz7IngTONlQ\",\"playerId\":1147,\"playerName\":\"張宇斌\",\"schoolId\":6,\"timeLineEventType\":\"GOAL\",\"timeMin\":0,\"timeSec\":0,\"upPlayerId\":0},{\"downPlayerHeadUrl\":\"http://7xj3pr.com1.z0.glb.clouddn.com/default/head/useravatar.png\",\"downPlayerId\":1682,\"downPlayerName\":\"林修乾\",\"id\":1209,\"playerId\":0,\"schoolId\":116,\"timeLineEventType\":\"SU\",\"timeMin\":4,\"timeSec\":3,\"upPlayerHeadUrl\":......}
以上就是Android中怎么利用post請求傳遞json數(shù)據(jù)給服務(wù)端,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。