Android中Http通讯的一般过程
来源:互联网 发布:cs成像算法 编辑:程序博客网 时间:2024/05/17 02:03
参看书本内容之后,自己总结的几点。
1、创建一个URL对象;
2、通过调用URL对象的openConnection()方法返回一个URLConnection对象
3、利用URLConnection对象获取输入流对象InputStream
4、从输入流中读取数据
以下以读取百度服务器首页内容为例,说明一下Android中利用Http通讯的一般过程。
首先界面布局如下所示
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/Btn_Commit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ConnectingServer"/> <TextView android:id="@+id/TextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="显示获取到的服务器信息"/> </LinearLayout></ScrollView>
java源代码如下:
package com.android.www;import java.io.DataInputStream;import java.io.IOException;import java.net.URL;import java.net.URLConnection;import org.apache.http.util.ByteArrayBuffer;import org.apache.http.util.EncodingUtils;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.TextView;public class TestUrl extends Activity {private Button button;private TextView textView;private final String ADDRESS="http://www.baidu.com";private URLConnection urlConnect;private URL url; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_testurl); button=(Button)findViewById(R.id.Btn_Commit); textView=(TextView)findViewById(R.id.TextView); button.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubDataInputStream dis=null;if(v==button){try{//1、创建一个URL对象url=new URL(ADDRESS);//2、通过调用URL对象的openConnection()方法返回一个URLConnection对象urlConnect=url.openConnection();//3、利用URLConnection对象获取输入流对象InputStreamdis=new DataInputStream(urlConnect.getInputStream());int temp=0;ByteArrayBuffer baff=new ByteArrayBuffer(1000);//4、从输入流中读取数据while((temp=dis.read())!=-1){baff.append(temp);}textView.setText(EncodingUtils.getString(baff.toByteArray(), "UFT-8"));}catch(Exception e){e.printStackTrace();}finally{try{if(dis!=null)dis.close();}catch(IOException e){e.printStackTrace();}}}}}); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_testurl, menu); return true; }}
然后在AndroidManifest.xml中添加访问网络的权限
<uses-permission android:name="android.permission.INTERNET"/>效果如下图:
- Android中Http通讯的一般过程
- http通讯协议过程
- android自定义view绘制的一般过程
- 开发过程中一般的测试方法
- Android-非常棒的HTTP通讯总结
- Android-非常棒的HTTP通讯总结
- Android-非常棒的HTTP通讯总结
- Android-非常棒的HTTP通讯总结
- Android-非常棒的HTTP通讯总结
- Android-非常棒的HTTP通讯总结
- 进行http通讯的开源库libcurl的应用过程
- android之http通讯,
- Android-HTTP通讯总结!
- android http 通讯相关
- java中HTTP通讯
- android开发过程中,测试apk进程对设备内存占用的一般方法
- android socket通讯过程?
- Android Java 虚拟机与底层服务通讯过程中字符串的处理
- Linux GCC编译环境下的两个字符串函数——memmove、memcpy
- python的tkinter可以更换红色的图标“Tk”
- 使用MySQL-Front导入SQL文件提示:SQL execution error # 1064. Response from the database:
- UVa 111
- poj 2528 Mayor's poster
- Android中Http通讯的一般过程
- 经典Hibernate面试题(二)
- Hadoop示例程序之单词统计MapReduce
- 经典Hibernate面试题(一)
- VB 注册表操作
- VB 快速读取文件内容的方法
- vb 读取文件指定行
- NGUI的优缺点。
- permutation 各种问题