`
yangsongjing
  • 浏览: 249101 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

手机与pc机连接读取服务器数据

阅读更多

从电脑里面到的是一个xml文件  

必须先要进行解析,解析用了两种,一种是xml解析,一种是json解析。xml大家都知道,json是什么呢,其实它是类似于数组方式存储的字符串,也就是一段文本。

下面是案例:

一般错误都是URL地址写错了导致连接出现问题。所以这里要注意。

其次一定要记得配权限。

 

 package com.icss.test_pc_connection_mobile;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;


import android.util.Log;
import android.util.Xml;

 

public class XmlParserUtil {
 /**
  * SAX解析
  */
 public static List<Person> getListFromWebBySax(InputStream inputStream)
   throws ParserConfigurationException, SAXException, IOException {
  List<Person> list = null;
  // 业务
  // 1. 创建SAX解析器工厂
  SAXParserFactory spf = SAXParserFactory.newInstance();
  // 2. 通过工厂拿到解析 器
  SAXParser sp = spf.newSAXParser();
  // 3. 解析 器加流及handler对象来解析
  PersonHandler sxh = new PersonHandler();
  sp.parse(inputStream, sxh);
  // 5. handler中取出list
  list = sxh.getList();
  // 4. 关闭流
  inputStream.close();
  return list;
 }
 
 /**
  * json解析
  *
  * @throws JSONException
  */
 public static List<Person> getListFromWebByJson(InputStream inputStream)
   throws ParserConfigurationException, SAXException, IOException,
   XmlPullParserException, JSONException {
  List<Person> list = null;
  Person s = null;
  // 从流中读取数据
  byte[] b = new byte[1024];
  //du dao liu
  inputStream.read(b);
  //ba liu change String
  String str = new String(b, "utf-8");
  JSONArray ja = new JSONArray(str);
  for (int i = 0; i < ja.length(); i++) {
   JSONObject jo = (JSONObject) ja.get(i);
   s.setId(jo.getInt("id"));
   s.setName(jo.getString("name"));
   s.setAge(jo.getInt("age"));
   list.add(s);
  }
  inputStream.close();
  return list;
 }
 

 /**
  * pull解析
  */
 public static List<Person> getListFromWebByPull(InputStream inputStream)
   throws ParserConfigurationException, SAXException, IOException,
   XmlPullParserException {
  List<Person> list = null;
  Person s = null;
  // 一种,直接pull
  // XmlPullParserFactory f=XmlPullParserFactory.newInstance();
  // XmlPullParser p=f.newPullParser(); //pull解析器
  // 二种, android对pull的支持
  XmlPullParser p = Xml.newPullParser(); // 通过android的pull支持创建一个pull解析器
  p.setInput(inputStream, "utf-8");
  int eventType = p.getEventType();

  while (eventType != XmlPullParser.END_DOCUMENT) {
   Log.i("localName", "" + p.getName());
   // 每一个节点业务
   switch (eventType) {
   case XmlPullParser.START_DOCUMENT:

    list = new ArrayList<Person>();

    break;
   case XmlPullParser.START_TAG:
    if ("person".equals(p.getName())) {
     s = new Person();
     s.setId(new Integer(p.getAttributeValue(null, "id")));
    } else if ("name".equals(p.getName())) {
     if (s != null) {
      s.setName(p.nextText());
     }
    } else if ("age".equals(p.getName())) {
     if (s != null) {
      s.setAge(new Integer(p.nextText()));
     }
    }
    break;
   case XmlPullParser.END_TAG:
    if ("person".equals(p.getName()) && s != null) {
     list.add(s);
    }
    break;
   }
   eventType = p.next(); // 到下一个节点
  }

  return list;
 }
}

 

 

上面是两种解析方式。其他代码在附件中。

分享到:
评论

相关推荐

    手机蓝牙与PC机通讯

    总结来说,手机蓝牙与PC机通讯涉及到蓝牙配对、UUID匹配、服务器端的监听和客户端的连接,以及通过InputStream和OutputStream进行数据交换。在Android设备上,还可以结合重力感应API来感知设备的动作并传输相关数据...

    安卓手机USB数据线连接电脑宽带上网方法

    1. **连接手机与电脑**:使用USB数据线将手机连接至电脑,并在手机上依次打开“系统设置”&gt;“无线和网络”&gt;“绑定与便携式热点”&gt;启用“USB绑定”。此时,电脑的网络连接窗口中应该会出现一个新的本地连接,我们可以...

    基于PythonFlask的手机与PC服务器通信.zip

    在当今的互联网时代,手机与PC之间的数据交互变得越来越频繁,而Python Flask框架提供了一个轻量级且强大的解决方案,使得开发者可以构建自己的服务器来实现这种通信。Flask是Python的一个微型Web服务框架,它允许...

    STM32单片机作TCP服务器,实现PC多客户端连接Demo

    在这个项目中,STM32F750开发板被用来创建一个能同时处理多个PC客户端连接的TCP服务器。下面我们将详细探讨这个Demo中的关键技术点。 首先,STM32F750是一款高性能的微控制器,基于ARM Cortex-M7内核,具有丰富的...

    手机端与服务器端建立通信,从网络获取数据

    综上所述,手机端与服务器端建立通信,从网络获取数据这一过程涵盖了网络协议、请求库选择、API设计、数据格式、异步处理、权限管理、错误处理、数据缓存以及安全性等多个方面。理解并熟练掌握这些知识点,是开发...

    基于PythonFlask的手机与PC服务器通信.pdf

    本文介绍了如何使用Python的Flask框架和AppInventor工具实现智能手机与PC服务器之间的通信。以下是文章中提出的关键知识点。 知识点一:移动互联网的发展和AppInventor工具的应用 移动互联网技术的快速发展导致了...

    手机端访问PC端tomcat服务器

    随着移动互联网的发展,越来越多的应用场景需要实现手机端与PC端的数据交互。其中一种常见需求是通过手机访问运行在PC上的Tomcat服务器。这不仅可以用于开发调试,还可以在特定环境下作为一种临时解决方案。 #### ...

    PC机与PLC串口通信

    在工业自动化领域,PC机(个人计算机)与PLC(可编程逻辑控制器)之间的通信是至关重要的,因为这使得上位机(PC)能够监控、控制和数据采集下位机(PLC)所管理的设备。本文将深入探讨PC机与PLC串口通信的相关知识...

    android在wifi下手机与PC的socket通信

    在这个场景下,Android手机作为客户端(Client),而PC作为服务器端(Server),它们通过WiFi网络建立连接并交换数据。 首先,我们来详细了解一下Socket通信的基本原理: 1. **服务器端(PC)**: - 创建...

    手机端摄像头采集数据,通过USB传输到PC

    本文将深入探讨如何通过USB接口实现手机端摄像头数据的采集与传输到PC的过程,这涉及到的主要技术包括安卓系统的API调用、摄像头操作、USB通信协议以及客户端-服务器模型的应用。 首先,我们需要了解的是手机端...

    android app与pc通信,USB连接socket通信,

    在Android与PC之间建立Socket连接时,我们可以将Android设备视为客户端(Client),PC视为服务器(Server)。客户端向服务器发起连接请求,服务器接收并响应这个请求,从而形成一个数据传输的通道。 要实现这个功能...

    通过MPI建立SIMATIC NET OPC服务器与PLC的S7连接

    2. **数据读取错误**:检查 PLC 中的数据地址是否正确,确保 OPC 服务器与 PLC 的数据格式一致。 3. **性能问题**:优化通讯配置,减少不必要的数据交换,提高通信效率。 4. **安全性问题**:确保使用了适当的安全...

    OPCUA 通信用于PLC 与PC机通信实例源码

    OPCUA(面向服务的架构,OPC统一架构)是一种开放的标准通信协议,它被广泛应用于工业自动化领域,特别是PLC(可编程逻辑控制器)与PC机之间的数据交换。本实例源码着重展示了如何实现这一通信机制,为开发者提供了...

    PC机与WinCE进行通信 通过微软提供的TCP/IP协议

    - PC机:通常使用有线或无线网络连接,可以通过Windows的网络和共享中心进行网络设置,包括静态或动态获取IP地址。 - WinCE设备:在WinCE系统中,需要手动配置网络参数,这通常通过设备的网络管理工具完成。设置...

    两台PC机通信程序

    综上所述,这个"两台PC机通信程序"是一个基础的Java网络编程示例,涉及了Socket通信、服务器端与客户端的逻辑设计,以及网络数据传输的基本原理。通过学习和理解这个程序,开发者可以进一步掌握Java在网络编程中的...

    手机与pc电脑间的视频监控

    总结来说,手机与PC间的视频监控通过内网实现,关键在于正确配置网络环境、在PC上设置视频服务器,并在手机端找到合适的应用进行连接。理解这些基础知识,你就能轻松搭建起自己的视频监控系统。

    PC和手机通讯两端程序基于UDP

    PC端程序通常作为服务器端,监听特定的UDP端口号,等待来自手机的连接和数据。而手机端程序则作为客户端,负责发起连接请求,发送信息到PC。 “输入发送信息后,电脑收到消息自动取得手机的地址和端口”,这表明在...

    java通过SNMP协议获取交换机设备信息(如:交换机下的PC机MAC、IP、连接端口号等信息)

    本篇文章将深入探讨如何利用Java编程语言通过SNMP协议来获取交换机设备上的详细信息,包括PC机的MAC地址、IP地址以及连接的端口号。 首先,SNMP是一种应用层协议,它允许网络管理员远程收集和配置网络设备的数据。...

    KepServerEX V6-使用OPC UA在两台PC间交换数据.docx

    然后,创建一个新的设备,与服务器建立连接。在执行此操作前,确保【Server PC】上的KEPServerEX处于运行状态。 通过以上步骤,两台PC之间的OPC UA通信链路已经建立。这种配置允许数据在两者之间透明地流动,支持...

Global site tag (gtag.js) - Google Analytics