




已阅读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届西藏林芝第一中学高二化学第一学期期中教学质量检测模拟试题含解析
- 2025年注册验船师资格考试(B级船舶检验专业基础安全)综合练习题及答案一
- 2025年老龄化社会与养老服务研究项目考试及答案
- 2025年篮球试卷考试题及答案
- 海安银行考试题目及答案
- 2025年建筑设计师求职面试技巧解析与答案版
- 2025年电子商务运营专家中级面试题及解析
- 2025年电力行业专业技术岗位招聘考试预测题集
- 2025年机关物业电梯岗位应聘面试题详解与攻略
- 2025年注册会计师考试CPA核心考点梳理与试题预测
- 2025年济南市中考英语试题含答案
- 2025年青海省中考英语试卷真题(含答案及解析)
- 法官培训人民调解员讲稿
- 中文版儿童睡眠习惯问卷CSHQ 含评分维度
- 风电叶片修复技术方案和措施
- 2025至2030年中国电子级磷酸行业市场发展态势及未来趋势研判报告
- 公司吐槽大会活动方案
- 2025重庆市璧山区辅警考试试卷真题
- 早教老师笔试题目及答案
- 新疆水利面试试题及答案
- 工程挂靠免责协议书
评论
0/150
提交评论