Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android向Rest服務Post數據遇到的Date類型數據問題

Android向Rest服務Post數據遇到的Date類型數據問題

編輯:關於Android編程

 今天在Android端向Rest服務Post數據時,總是不成功,查了很多資料,才知道Rest端將json串反序列化時,需要的時間格式必須是UTC類型,及Date(12345678+0800)格式。   Android端序列化方法    復制代碼 //利用Gson實現對象序列化為Json public static String toJson(Object object) {   GsonBuilder builder = new GsonBuilder();   // 不轉換沒有 @Expose 注解的字段   builder.excludeFieldsWithoutExposeAnnotation();   //對Date類型進行注冊事件   builder.registerTypeAdapter(Date.class, new UtilDateSerializer());   Gson gson = builder.create();   return gson.toJson(object); }      class UtilDateSerializer implements JsonSerializer<Date> {   @Override   public JsonElement serialize(Date src, Type typeOfSrc,         JsonSerializationContext context) {     //拼湊UTC時間類型     return new JsonPrimitive("/Date(" + src.getTime()+ "+0800)/");   } } 復制代碼 Android端Post方法   復制代碼 /**  * 通過POST方式發送請求 *   * @param url *            URL地址 * @param params *            參數 * @return * @throws Exception  */ public String httpPost(String url, String json) throws Exception {   String response = null;   int timeoutConnection = 3000;   int timeoutSocket = 5000;   HttpParams httpParameters = new BasicHttpParams();   HttpConnectionParams.setConnectionTimeout(httpParameters,timeoutConnection);   HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);   HttpClient httpClient = new DefaultHttpClient(httpParameters);   HttpPost httpPost = new HttpPost(url);    // 添加http頭信息   httpPost.addHeader("Content-Type", "application/json");   httpPost.addHeader("User-Agent", "imgfornote");   httpPost.setEntity(new StringEntity(json,"UTF-8"));   HttpResponse httpResponse = httpClient.execute(httpPost);   int statusCode = httpResponse.getStatusLine().getStatusCode();   if (statusCode == HttpStatus.SC_OK) {       response = EntityUtils.toString(httpResponse.getEntity());   } else {       response = String.valueOf(statusCode);   }   return response; } 復制代碼   C#Rest服務端   [OperationContract] [WebInvoke(UriTemplate = "/yyxTest", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] string MensarTest(XCJCQK model); 自己的一點小結,希望對遇到相同問題的人有幫助。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved