`
1140566087
  • 浏览: 560138 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18563
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314497
Group-logo
J2ME 基础学习课程集
浏览量:18795
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17592
社区版块
存档分类
最新评论

Android 之 网络访问服务器,解析JSON数据

阅读更多
提示:在访问网络,或者服务器的数据一定要注意 网络权限的声明:
	<uses-permission android:name="android.permission.INTERNET"/>


package com.sun.parsejsondata;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.test.AndroidTestCase;
import android.util.Log;

/*{
    "index_num":"121286",
    "total":300,
    "result_num":10,
    "web_url":"http://www.aibang.com",
    "wap_url":"http://wap.aibang.com",
    "bizs":{
        "biz":[{
            "id":"19180584-418982077",
            "name":"北京饭店",
            "addr":"东城区东长安街号(近王府井大街)",
            "tel":"4006778919-1011",
            "cate":"宾馆酒店;美食;其他美食;五星级酒店;婚宴酒店;结婚",
            "rate":4,
            "cost":0,
            "desc":"北京饭店始建于年,位于北京市中心,步行五,毗邻皇宫紫禁城,与繁华的...",
            "dist":"-1",
            "lng":"116.411096",
            "lat":"39.9084880",
            "img_url":"http://img0.aibangjuxin.com/ipic/15f6cfa4e1cc98cf_8.jpg"
        },
        ...
        ]
    }
}*/


/**
 *  获取网络数据 -- json 格式,并进行解析
 * @author Administrator
 *
 */
public class ParseJson  {

	/**
	 * 解析JSON 数据
	 * @throws Exception 
	 */
	public void parseJson(String jsonStr) throws Exception{
		
		JSONObject root = new JSONObject(jsonStr);
		
		// 编号
		String index_num = (String) root.get("index_num");
		int total = root.getInt("total");
		int result_num = root.getInt("result_num");
		
		JSONObject bizsO = root.getJSONObject("bizs"); 
		JSONArray arr = bizsO.getJSONArray("biz");
		for (int i = 0; i < arr.length(); i++) {
			JSONObject bizs_ =arr.getJSONObject(i);
			String id = bizs_.getString("id");
			String addr = bizs_.getString("addr");
			Log.i("msg","编号:"+id+"',地址"+addr);
		}
		
	}
	
	/**
	 * 访问网络数据
	 * @throws IOException 
	 * @throws ClientProtocolException 
	 */
	public String accessIntent() throws Exception{
		
		// 请求服务器地址
		String path = "http://169.254.111.39:8080/myjson.html";
		
		// Get 方式进行请求
		HttpGet httpGet = new HttpGet(path);
		
		// 默认客户端
		HttpClient httpClient = new DefaultHttpClient();
		
		// 请求响应
		HttpResponse httpResponse = httpClient.execute(httpGet);
		
		// 判断响应结果
		if(httpResponse.getStatusLine().getStatusCode() == 200){ // 响应成功
			
			HttpEntity httpEntity = httpResponse.getEntity(); 
			String result = EntityUtils.toString(httpEntity, "gbk");
			Log.i("msg",result);
			return result;
		}
		
		return null;
	}	
	
}


post的请求方式:

public class HttpURLActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        System.out.println("start url..."); 
        String url = "http://192.168.2.112:8080/JustsyApp/Applet"; 
        // 第一步,创建HttpPost对象 
        HttpPost httpPost = new HttpPost(url); 
 
        // 设置HTTP POST请求参数必须用NameValuePair对象 
        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
        params.add(new BasicNameValuePair("action", "downloadAndroidApp")); 
        params.add(new BasicNameValuePair("packageId", "89dcb664-50a7-4bf2-aeed-49c08af6a58a")); 
        params.add(new BasicNameValuePair("uuid", "test_ok1")); 
 
        HttpResponse httpResponse = null; 
        try { 
            // 设置httpPost请求参数 
            httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 
            httpResponse = new DefaultHttpClient().execute(httpPost); 
            //System.out.println(httpResponse.getStatusLine().getStatusCode()); 
            if (httpResponse.getStatusLine().getStatusCode() == 200) { 
                // 第三步,使用getEntity方法活得返回结果 
                String result = EntityUtils.toString(httpResponse.getEntity()); 
                System.out.println("result:" + result); 
                T.displayToast(HttpURLActivity.this, "result:" + result); 
            } 
        } catch (ClientProtocolException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        System.out.println("end url..."); 
        setContentView(R.layout.main); 
    } 
} 



分享到:
评论

相关推荐

    Android_JSON数据解析

    总结,Android中解析JSON数据涉及的关键知识点包括JSON的基本结构、Gson库的使用、JSONObject和JSONArray的操作、Volley库的网络请求以及Retrofit框架的使用。这些工具和技术使得Android开发者能够高效地处理服务器...

    android客户端从服务器端获取json数据并解析的实现代码

    首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...

    android 动态解析获取json数据的键值对

    同时,确保在AndroidManifest.xml中添加必要的权限,比如网络访问权限(如果数据是从服务器获取的,而不是本地`raw`资源)。 总之,这个项目的核心是动态解析JSON数据,避免为每个JSON键值创建实体类,而是直接解析...

    Android服务器解析json数据实现下拉刷新上拉加载ListView显示

    这个"Android服务器解析json数据实现下拉刷新上拉加载ListView显示"的示例项目,就是针对这一场景提供了一个完整的解决方案。以下是关于这个项目的关键知识点的详细说明: 1. JSON数据解析: JSON(JavaScript ...

    android httpclient 访问服务器 获取json数据

    在Android开发中,HTTPClient是常用的网络通信库之一,用于与服务器进行交互,获取或发送数据。本示例主要讲解如何使用HTTPClient访问服务器并获取JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    - **接收数据**:服务器响应的数据通常是JSON格式,Android客户端需要解析这些数据。使用`org.json`库,可以将JSON字符串转换为JSONObject或JSONArray,并提取所需信息。 2. **文件上传**: - 文件上传涉及到二...

    android异步远程解析json数据绑定到listview上

    总的来说,"android异步远程解析json数据绑定到ListView上"这一过程涵盖了许多Android开发的核心技术,包括异步编程、网络请求、JSON解析、数据绑定和异常处理。理解并熟练掌握这些知识点对于提升Android应用的性能...

    android通过json数据访问服务器

    要通过网络访问服务器,Android提供了`HttpURLConnection`和`HttpClient`等API,但更推荐使用`OkHttp`这样的第三方库,它更高效且易用。`OkHttp`支持异步请求,非常适合用于多线程访问服务器。在多线程环境下,我们...

    android客户端从服务器端获取json数据并解析

    通过上述步骤,你就可以在Android客户端从服务器端获取并解析JSON数据了。这不仅适用于基本的JSON数据结构,对于更复杂的数据结构,也可以通过递归地使用`JSONArray`和`JSONObject`来进行解析。

    android解析Json数据

    本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...

    Android中Json数据解析

    总之,在Android中解析JSON数据是应用程序与服务器交互的重要一环。熟练掌握Gson库和org.json库的使用,能够帮助开发者更高效地处理网络数据,提升应用性能。通过不断实践,你可以更加灵活地运用这些工具,解决各种...

    android读取并解析服务器json

    3. **解析JSON**:Android SDK提供了`org.json`包,包含`JSONObject`和`JSONArray`类,用于解析JSON数据。对于JSON Object,可以通过`get()`方法获取键对应的值,对于JSON Array,可以遍历数组并逐一解析。 ```...

    Android客户端与服务器通信+json交互数据

    综上所述,Android客户端与服务器通信并使用JSON进行数据交互是一个涉及网络编程、JSON处理、服务器框架理解等多个层面的复杂过程。在实际开发中,需要对每个环节都有深入的理解,才能有效地实现客户端与服务器的...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    Android Studio解析JSON对象

    本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...

    android之json和gson数据解析最完整的代码例子(包括各种样式的json数据)

    在Android中,我们通常使用`org.json`库或`com.google.gson`库来解析JSON数据。 1. `org.json`库:这是Android SDK自带的一个轻量级库,主要用于解析简单的JSON数据。 - JSONObject:表示一个JSON对象,可以通过`...

    android中JSON数据解析

    本篇将深入探讨如何在Android中解析JSON数据。 首先,我们需要了解JSON的基本结构。JSON数据可以表示为对象或数组,对象由键值对组成,用花括号{}包围,键和值之间用冒号隔开,多个键值对用逗号分隔;数组是一系列...

    android中gson解析json数据例程

    本篇文章将详细介绍如何在Android应用中使用Gson库解析JSON数据,以便更好地理解这一关键知识点。 首先,我们要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

Global site tag (gtag.js) - Google Analytics