Android http请求例子、Unicode转UTF-8 java代码收藏

来源:互联网 发布:h5登录界面模板带源码 编辑:程序博客网 时间:2024/05/20 06:09

http://blog.csdn.net/wyzxk888/article/details/7337649

Android项目经常是C/S模型的,因此需要向服务器发出http请求,收藏一个http请求的例子以便以后可以用。

假设发出的请求使用get方法,服务器传回JSON数据,解析代码如下:

[java] view plaincopyprint?
  1. HttpClient client = new DefaultHttpClient(); 
  2. HttpGet httpGet = new HttpGet(req_url); 
  3. try
  4.     HttpResponse response = client.execute(httpGet); 
  5.     int statusCode = response.getStatusLine().getStatusCode(); 
  6.     if (statusCode != HttpStatus.SC_OK) { 
  7.         Log.d("AD", "statusCode is " + statusCode); 
  8.         return null
  9.     }  
  10.     else
  11.         HttpEntity entity = response.getEntity(); 
  12.         if (entity != null) { 
  13.             InputStream inputStream = entity.getContent(); 
  14.             StringBuilder builder = new StringBuilder(); 
  15.             BufferedReader bufferedReader  = new BufferedReader(new InputStreamReader(inputStream)); 
  16.             for (String s = bufferedReader.readLine(); s !=null; s = bufferedReader.readLine()) { 
  17.                 builder.append(s); 
  18.             } 
  19.             String result = builder.toString(); 
  20.                      
  21.             Log.d("AD", "Server return " + result); 
  22.             return result; 
  23.                      
  24.         } 
  25.     }  
  26. } catch (Exception e) { 
  27.     httpGet.abort(); 
  28.     Log.d("AD", "when http get, exception is " + e.getMessage()); 
  29. return null

注:JSON数据格式其实就是String。可以用JSONObject类进行转化。

有时候服务器传回的数据中会遇到传回数据为Unicode的情况,为此需要进行Unicode转UTF-8的转化,我在项目中遇见过,为此收藏一份转化 java 代码,便于以后使用:

[java] view plaincopyprint?
  1. private static String decodeUnicode(String theString) { 
  2.     char aChar; 
  3.     int len = theString.length(); 
  4.     StringBuffer outBuffer = new StringBuffer(len); 
  5.     for (int x =0; x < len;) { 
  6.         aChar = theString.charAt(x++); 
  7.         if (aChar == '\\') { 
  8.             aChar = theString.charAt(x++); 
  9.             if (aChar =='u') { 
  10.                 // Read the xxxx 
  11.                 int value =0
  12.                 for (int i =0; i < 4; i++) { 
  13.                     aChar = theString.charAt(x++); 
  14.                     switch (aChar) { 
  15.                     case'0'
  16.                     case '1'
  17.                     case'2'
  18.                     case '3'
  19.                     case'4'
  20.                     case '5'
  21.                     case'6'
  22.                     case '7'
  23.                     case'8'
  24.                     case '9'
  25.                         value = (value << 4) + aChar - '0'
  26.                         break
  27.                     case'a'
  28.                     case 'b'
  29.                     case'c'
  30.                     case 'd'
  31.                     case'e'
  32.                     case 'f'
  33.                         value = (value << 4) + 10 + aChar - 'a'
  34.                         break
  35.                     case'A'
  36.                     case 'B'
  37.                     case'C'
  38.                     case 'D'
  39.                     case'E'
  40.                     case 'F'
  41.                         value = (value << 4) + 10 + aChar - 'A'
  42.                         break
  43.                     default
  44.                         throw new IllegalArgumentException( 
  45.                                 "Malformed   \\uxxxx   encoding."); 
  46.                     } 
  47.  
  48.                 } 
  49.                 outBuffer.append((char) value); 
  50.             } else
  51.                 if (aChar =='t'
  52.                     aChar = '\t'
  53.                 else if (aChar == 'r'
  54.                     aChar = '\r'
  55.                 else if (aChar == 'n'
  56.                     aChar = '\n'
  57.                 else if (aChar == 'f'
  58.                     aChar = '\f'
  59.                 outBuffer.append(aChar); 
  60.             } 
  61.         } else 
  62.             outBuffer.append(aChar); 
  63.     } 
  64.     return outBuffer.toString(); 
原创粉丝点击