




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化转型对新闻出版业的影响-洞察及研究
- 2025年【起重机械指挥】考试试题及答案
- 工业换热设备升级改造方案
- 现代农业大数据应用案例解析
- 投行在金融扶贫中的实践-洞察及研究
- 虚拟现实与工程教育融合研究-洞察及研究
- 员工入职培训计划及内容大纲
- 高校安全教育学习题库及答案解析
- 出租车从业考试时长及答案解析
- 基金从业考试过两科就行及答案解析
- GB/T 3672.1-2002橡胶制品的公差第1部分:尺寸公差
- 月度工作总结
- 《C++语言基础》全套课件(完整版)
- 箱涵高支模方案
- 第十章我国的环境保护政策和法规课件
- 《社会工作伦理案例分析》课件 儿童和青少年社会工作伦理
- 艺人明星形象代言肖像权使用合同模板
- 绿化养护检查记录表
- 减盐防控高血压治课件全球减盐行动课件
- 《饲料学》粗饲料
- (实施)产万吨高吸水性树脂(SAP)技改项目环评
评论
0/150
提交评论