已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android平台有三种网络接口可以使用,他们分别是:.*(标准Java接口)、Org.apache接口和A.*(Android网络接口)。下面分别介绍这些接口的功能和作用。1.标准Java接口.*提供与联网有关的类,包括流、数据包套接字(socket)、Internet协议、常见Http处理等。比如:创建URL,以及URLConnection/HttpURLConnection对象、设置链接参数、链接到服务器、向服务器写数据、从服务器读取数据等通信。这些在Java网络编程中均有涉及,我们看一个简单的socket编程,实现服务器回发客户端信息。服务端:public class Server implements Runnable Override public void run() Socket socket = null; try ServerSocket server = new ServerSocket(18888); /循环监听客户端链接请求 while(true) System.out.println(start.); /接收请求 socket = server.accept(); System.out.println(accept.); /接收客户端消息 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(); String message = in.readLine(); /发送消息,向客户端 PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),true); out.println(Server: + message); /关闭流 in.close(); out.close(); catch (IOException e) e.printStackTrace(); finally if (null != socket) try socket.close(); catch (IOException e) e.printStackTrace(); /启动服务器 public static void main(String args) Thread server = new Thread(new Server(); server.start(); 客户端,MainActivitypublic class MainActivity extends Activity private EditText editText; private Button button; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); editText = (EditText)findViewById(R.id.editText1); button = (Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() Override public void onClick(View v) Socket socket = null; String message = editText.getText().toString()+ rn ; try /创建客户端socket,注意:不能用localhost或,Android模拟器把自己作为localhost socket = new Socket(,18888); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter (socket.getOutputStream(),true); /发送数据 out.println(message); /接收数据 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(); String msg = in.readLine(); if (null != msg) editText.setText(msg); System.out.println(msg); else editText.setText(data error); out.close(); in.close(); catch (UnknownHostException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally try if (null != socket) socket.close(); catch (IOException e) e.printStackTrace(); ); 布局文件: 启动服务器:javac com/test/socket/Server.javajava com.test.socket.Server运行客户端程序:结果如图:注意:服务器与客户端无法链接的可能原因有:没有加访问网络的权限:IP地址要使用:模拟器不能配置代理。2。Apache接口对于大部分应用程序而言JDK本身提供的网络功能已远远不够,这时就需要Android提供的Apache HttpClient了。它是一个开源项目,功能更加完善,为客户端的Http编程提供高效、最新、功能丰富的工具包支持。下面我们以一个简单例子来看看如何使用HttpClient在Android客户端访问Web。首先,要在你的机器上搭建一个web应用myapp,只有很简单的一个http.jsp内容如下:Http Test%String type = request.getParameter(parameter);String result = new String(type.getBytes(iso-8859-1),utf-8);out.println( + result + );%然后实现Android客户端,分别以post、get方式去访问myapp,代码如下:布局文件:资源文件:strings.xml 通过按钮选择不同方式访问网页 Http Get主Activity:public class MainActivity extends Activity private TextView textView; private Button get,post; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView)findViewById(R.id.textView); get = (Button)findViewById(R.id.get); post = (Button)findViewById(R.id.post); /绑定按钮监听器 get.setOnClickListener(new OnClickListener() Override public void onClick(View v) /注意:此处ip不能用或localhost,Android模拟器已将它自己作为了localhost String uri = 8:8080/myapp/http.jsp?parameter=以Get方式发送请求; textView.setText(get(uri); ); /绑定按钮监听器 post.setOnClickListener(new OnClickListener() Override public void onClick(View v) String uri = 8:8080/myapp/http.jsp; textView.setText(post(uri); ); /* * 以get方式发送请求,访问web * param uri web地址 * return 响应数据 */ private static String get(String uri) BufferedReader reader = null; StringBuffer sb = null; String result = ; HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(uri); try /发送请求,得到响应 HttpResponse response = client.execute(request); /请求成功 if (response.getStatusLine().getStatusCode() = HttpStatus.SC_OK) reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(); sb = new StringBuffer(); String line = ; String NL = System.getProperty(line.separator); while(line = reader.readLine() != null) sb.append(line); catch (ClientProtocolException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally try if (null != reader) reader.close(); reader = null; catch (IOException e) e.printStackTrace(); if (null != sb) result =sb.toString(); return result; /* * 以post方式发送请求,访问web * param uri web地址 * return 响应数据 */ private static String post(String uri) BufferedReader reader = null; StringBuffer sb = null; String result = ; HttpClient client = new DefaultHttpClient(); HttpPost request = new HttpPost(uri); /保存要传递的参数 List params = new ArrayList(); /添加参数 params.add(new BasicNameValuePair(parameter,以Post方式发送请求); try /设置字符集 HttpEntity entity = new UrlEncodedFormEntity(params,utf-8); /请求对象 request.setEntity(entity); /发送请求 HttpResponse response = client.execute(request); /请求成功 if (response.getStatusLine().getStatusCode() = HttpStatus.SC_OK) System.out.println(post success); reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(); sb = new StringBuffer(); String line = ; String NL = System.getProperty(line.separator); while(line = reader.readLine() != null) s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于确认2026年上半年度远程办公协议的函5篇
- 汽车制造行业生产工位绩效评估表
- 社区养老服务中心老人服务流程规范化操作手册
- 2026中国饮料企业家族传承与职业经理人制度研究报告
- 2026中国餐饮业燃气安全管理系统标准化建设研究报告
- 营销策略调整建议联系函4篇
- 银行职员风险防控及客户运营能力考核表
- 智能财务风险控制体系
- 2025年秋季学期高等数学期末考试试卷解析与习题
- IT系统维护时间安排商洽函4篇范文
- TCCEAS 008-2026 建设工程造价咨询成果文件质量标准
- 2026年老干局工作模拟题及答案详解
- 2026年中级经济师实务考试(保险专业)新版真题卷(含答案)
- 2026中国口腔医疗服务市场消费特征与增长潜力报告
- 2026秋小学苏教版科学四年级上册第二单元学情测试练习附参考答案三套
- 2026公务员时事政治热点题库(含答案)
- 2026中国mRNA肿瘤疫苗新抗原预测算法与个体化制备流程
- 2026届高三语文理解性默写60篇(教师版)
- 教室课桌椅供货安装方案
- 2026年消防安全培训
- 2025-2026学年九年级数学上学期期中模拟卷(安徽专用沪科版)考试版
评论
0/150
提交评论