zoukankan      html  css  js  c++  java
  • Android通过http方式获取JSON字符串并解析的注意事项(乱码,小黑框)

    在windows平台下换行符是 /r/n ,而在linux,android平台下换行符是 /n   ,所以取得的JSON字符串必须进行过滤,将/r/n替换成/n,

    另外不建议使用 BasicResponseHandler() ,这样会导致乱码


    两个重要函数:

    public static String get(String urlString)  {
    		
    		/*try{
    			HttpGet request = new HttpGet(urlString);
    			String result=getHttpClient().execute(request,new BasicResponseHandler());
    			return result;
    		}catch(IOException e){
    			throw e;
    		}*/
    		
    		String result="";
    		BufferedReader in=null;
    		try {
    		    HttpClient client = new DefaultHttpClient();
    		    HttpGet request=new HttpGet(urlString);
    		    HttpResponse response = client.execute(request);
    		    
    		    in=new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    		    StringBuffer sb=new StringBuffer("");
    		    String line="";
    		    String NL=System.getProperty("line.separator");
    		   // String NL="";
    		    while((line=in.readLine())!=null){
    		    	sb.append(line+NL);
    		    }
    		    in.close();
    		    result=sb.toString();
    		    result=JsonFilter(result);
    		} 
    		catch (Exception e) {
    			e.printStackTrace();
    		}
    		finally{
    			if(in!=null){
    				try{
    					in.close();
    				}catch(IOException e){
    					e.printStackTrace();
    				}
    			}
    		}
    		return result;		
    	}
    	
    	/*
    	 * 对json字符串进行过滤,防止乱码和黑框
    	 */
    	public static String JsonFilter(String jsonstr){
    		return jsonstr.substring(jsonstr.indexOf("{")).replace("\r\n","\n"); 
    	}



  • 相关阅读:
    创业公司新品如何寻求科技媒体的报道?
    DevStore分享:详析消费者十大心理学
    DevStore教你如何玩转饥饿营销?
    iClap分享:如何优雅的在 APP 中实现测试?
    java内部类
    Tostring 的用法
    Java 集合详解
    Java集合浅析
    异常--解析
    is-a 、have-a、和 like-a的区别
  • 原文地址:https://www.cnblogs.com/rav009/p/5131202.html
Copyright © 2011-2022 走看看