Android开发之HTTP访问网络

本文实例为大家详细介绍了Android开发之HTTP访问网络的相关代码,供大家参考,具体内容如下

代码1:

package com.ywhttpurlconnection;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class YwhttpurlconnectionActivity extends Activity {
 /** Called when the activity is first created. */

 private Button btn1 = null;
 private Button btn2 = null;
 private Button btn3 = null;
 private Button btn4 = null;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //直接获取数据
  btn1 = (Button) this.findViewById(R.id.Button01);
  //GET方式传递
  btn2 = (Button) this.findViewById(R.id.Button02);
  //POST方式传递
  btn3 = (Button) this.findViewById(R.id.Button03);
  //获取图片
  btn4 = (Button) this.findViewById(R.id.Button04);

  btn1.setOnClickListener(new Button.OnClickListener(){ 

   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent();
    intent.setClass(YwhttpurlconnectionActivity.this, showdata.class);
    Bundle b = new Bundle();
    b.putInt("id", 1);
    intent.putExtras(b);
    startActivity(intent);
   } 

  });
  btn2.setOnClickListener(new Button.OnClickListener(){ 

   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent();
    intent.setClass(YwhttpurlconnectionActivity.this, showdata.class);
    Bundle b = new Bundle();
    b.putInt("id", 2);
    intent.putExtras(b);
    startActivity(intent);
   } 

  });
  btn3.setOnClickListener(new Button.OnClickListener(){ 

   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent();
    intent.setClass(YwhttpurlconnectionActivity.this, showdata.class);
    Bundle b = new Bundle();
    b.putInt("id", 3);
    intent.putExtras(b);
    startActivity(intent);
   } 

  });
  btn4.setOnClickListener(new Button.OnClickListener(){ 

   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent();
    intent.setClass(YwhttpurlconnectionActivity.this, showdata.class);
    Bundle b = new Bundle();
    b.putInt("id", 4);
    intent.putExtras(b);
    startActivity(intent);
   } 

  });
 }
}

代码2:

package com.ywhttpurlconnection;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;

public class showdata extends Activity {
 private TextView tv = null;
 private ImageView iv = null;
 private Bitmap mBitmap = null;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.http);
  Intent intent = this.getIntent();
  Bundle b = intent.getExtras();
  int id = b.getInt("id");
  tv = (TextView) this.findViewById(R.id.TextView_HTTP);
  iv = (ImageView) this.findViewById(R.id.ImageView01);
  //直接获取数据
  if (id == 1) {
//   String httpUrl = "http://192.168.0.132:8080/Android/http.jsp";
   String httpUrl = "http://www.jb-aptech.com.cn";
   URL url = null;
   try {
    url = new URL(httpUrl);
   } catch (MalformedURLException e) {
    e.printStackTrace();
   }
   if (url != null) {
    try {
     // 打开连接,此处只是创建一个实例,并没有真正的连接
     HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
     // 连接
     urlConn.connect();

     InputStream input = urlConn.getInputStream();
     InputStreamReader inputReader = new InputStreamReader(input);
     BufferedReader reader = new BufferedReader(inputReader);
     String inputLine = null;
     StringBuffer sb = new StringBuffer();
     while ((inputLine = reader.readLine()) != null) {
      sb.append(inputLine).append("\n");
     }
     reader.close();
     inputReader.close();
     input.close(); 

     urlConn.disconnect();
     if(sb !=null){
      tv.setText(sb.toString());
     }else{
      tv.setText("读取的内容:NULL");
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }else{
    Log.i("TAG", "url is null");
   } 

  }else if(id==2){
   //GET方式传递
//   String httpUrl = "http://192.168.0.132:8080/Android/httpreq.jsp?par=hk";
   String httpUrl = "http://liveat.acewill.cn/liveat/?cmd=1&uid=xiaoming"; 

   URL url = null;
   try {
    url = new URL(httpUrl);
   } catch (MalformedURLException e) {
    e.printStackTrace();
   }
   if (url != null) {
    try {
     HttpURLConnection urlConn = (HttpURLConnection) url
       .openConnection();// 打开连接,此处只是创建一个实力,并没有真正的连接
     urlConn.setDoInput(true);
     urlConn.setDoOutput(true);
     urlConn.connect();// 连接
     InputStream input = urlConn.getInputStream();
     InputStreamReader inputReader = new InputStreamReader(input);
     BufferedReader reader = new BufferedReader(inputReader);
     String inputLine = null;
     StringBuffer sb = new StringBuffer();
     while ((inputLine = reader.readLine()) != null) {
      sb.append(inputLine).append("\n");
     }
     reader.close();
     inputReader.close();
     input.close();
     urlConn.disconnect();
     if(sb !=null){
      tv.setText(sb.toString());
     }else{
      tv.setText("读取的内容:NULL");
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }else{
    Log.i("TAG", "url is null");
   }
  }else if(id==3){
   //POST方式传递
//   String httpUrl = "http://192.168.0.132:8080/Android/httpreq.jsp";
   String httpUrl = "http://www.jb-aptech.com.cn"; 

   URL url = null;
   try {
    url = new URL(httpUrl);
   } catch (MalformedURLException e) {
    e.printStackTrace();
   }
   if (url != null) {
    try {
     HttpURLConnection urlConn = (HttpURLConnection) url
       .openConnection();// 打开连接,此处只是创建一个实例,并没有真正的连接
     urlConn.setDoInput(true);
     urlConn.setDoOutput(true);
     urlConn.setRequestMethod("POST");
     urlConn.setUseCaches(false);//post请求不能使用缓存.
     urlConn.setInstanceFollowRedirects(true);//是否自动重定向.
     urlConn.connect();// 连接
     OutputStream out = urlConn.getOutputStream();
     DataOutputStream data = new DataOutputStream(out);
     data.writeBytes("par="+URLEncoder.encode("hk", "GBK"));
     data.flush();
     data.close();
     out.close();
     InputStream input = urlConn.getInputStream();
     InputStreamReader inputReader = new InputStreamReader(input);
     BufferedReader reader = new BufferedReader(inputReader);
     String inputLine = null;
     StringBuffer sb = new StringBuffer();
     while ((inputLine = reader.readLine()) != null) {
      sb.append(inputLine).append("\n");
     }
     reader.close();
     inputReader.close();
     input.close();
     urlConn.disconnect();
     if(sb !=null){
      tv.setText(sb.toString());
     }else{
      tv.setText("读取的内容:NULL");
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }else{
    Log.i("TAG", "url is null");
   }
  }else if(id==4){ 

   String httpUrl = "http://www.google.com.hk/intl/zh-CN/images/logo_cn.gif";
   URL url = null;
   try {
    url = new URL(httpUrl);
   } catch (MalformedURLException e) {
    e.printStackTrace();
   }
   if (url != null) {
    try {
     // 打开连接,此处只是创建一个实例,并没有真正的连接
     HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
     urlConn.connect();// 连接
     InputStream input = urlConn.getInputStream();
     mBitmap = BitmapFactory.decodeStream(input);
     if(mBitmap != null){
      iv.setImageBitmap(mBitmap);
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }else{
    Log.i("TAG", "url is null");
   }
  }
 }
}

代码3:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.ywhttpurlconnection"
 android:versionCode="1"
 android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="10" />
 <uses-permission android:name="android.permission.INTERNET"/>
 <application
  android:icon="@drawable/ic_launcher"
  android:label="@string/app_name" >
  <activity
   android:label="@string/app_name"
   android:name=".YwhttpurlconnectionActivity" >
   <intent-filter >
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
   <activity android:name=".showdata"></activity>
 </application>

</manifest>

代码4:http.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

 <TextView
  android:id="@+id/TextView_HTTP"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  />
  <ImageView
  android:id="@+id/ImageView01"
  android:layout_width="172dp"
  android:layout_height="307dp" >

 </ImageView>

</LinearLayout>

代码5.mail.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >

 <TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/hello" />

  <Button android:text="直接获取数据" android:id="@+id/Button01"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
 </Button>
 <Button android:text="GET方式传递" android:id="@+id/Button02"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
 </Button>
 <Button android:text="POST方式传递" android:id="@+id/Button03"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
 </Button>
 <Button android:text="获取图片" android:id="@+id/Button04"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
 </Button> 

</LinearLayout>

6.运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android HttpClient GET或者POST请求基本使用方法

    在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.你可以把HttpClient想象成一个浏览器,通过它的API我们可以很方便的发出GET,POST请求(当然它的功能远不止这些) 这里只介绍如何使用HttpClient发起GET或者POST请求 GET 方式 复制代码 代码如下: //先将参数放入List,再对参数进行URL编码 List<BasicNameValuePair>

  • android之HttpPost&HttpGet使用方法介绍

    直接讲用法,先知道怎么用,再知道怎么回事 1.HttpPost 复制代码 代码如下: try{ //创建连接 HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(url); //设置参数,仿html表单提交 List<NameValuePair> paramList = new ArrayList<NameValuePair>(); BasicNameValuePair para

  • Android中发送Http请求(包括文件上传、servlet接收)的实例代码

    复制代码 代码如下: /*** 通过http协议提交数据到服务端,实现表单提交功能,包括上传文件* @param actionUrl 上传路径 * @param params 请求参数 key为参数名,value为参数值 * @param file 上传文件 */public static void postMultiParams(String actionUrl, Map<String, String> params, FormBean[] files) {try {PostMethod p

  • Android基于Http协议实现文件上传功能的方法

    本文实例讲述了Android基于Http协议实现文件上传功能的方法.分享给大家供大家参考,具体如下: 注意一般使用Http协议上传的文件都比较小,一般是小于2M 这里示例是上传一个小的MP3文件 1.主Activity:MainActivity.java public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private EditText timel

  • Android平台下轻量级http网络传输库

    AsyncHttpHelp是一个android平台下基于httpclient开发的HTTP网络请求工具. 优点 功能齐全,提供常用的http网络访问接口. 轻量级,无任何第三方库依赖,库大小为90K左右. 定制化,自定义json解析库,支持请求参数,返回内容预处理. 易用性,简单易用,只需几行代码即可完成请求,可随意设置cookie.http头部等信息. 功能 1.普通get请求 2.普通post请求 3.Form表单提交数据 4.二进制数据传输 5.json格式内容传输(json字符串自动转j

  • Android使用http请求手机号码归属地查询代码分享

    归属地数据源 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx webxml网站还支持其他请求方式 如SOAP等等 界面比较简单 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" an

  • Android使用OKHttp包处理HTTP相关操作的基本用法讲解

    OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势.(GitHub页:https://github.com/square/okhttp) Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接池,已足够满足我们各种HTTP请求的需求.但更高效的使用HTTP 可

  • AndroidHttpClient使用Cookie应用分析

    今天想把一个用使用了HttpClient的自动签到小程序移植到Android上,还好Android的SDK自带了HttpClient的包.翻Android的文档时发现官方还提供了一个实现了HttpClient接口的AndroidHttpClient,上网搜了下没发现关于AndroidHttpClient的文章.当然也可以继续使用DefaultHttpClient,但用为Android定制的AndroidHttpClient自然更好. 下面是2个测试用的HttpServlet: 复制代码 代码如下

  • Android开发之HTTP访问网络

    本文实例为大家详细介绍了Android开发之HTTP访问网络的相关代码,供大家参考,具体内容如下 代码1: package com.ywhttpurlconnection; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Ywhttpur

  • Android开发之ContentProvider的使用详解

    前言         Content Provider为存储数据和获取数据提供了统一的接口,它可以完成在不同应用程序下的数据共享,而在上一篇文章Android开发之SQLite的使用方法讲到的SQLite只能在同一个程序中共享数据.另外android为一些常见的数据,比如说音频,视频,图片,通讯录等提供了Content Provider,这样我们就可以很方便的对这些类型的数据操作了.使用ContentProvider的好处是开发人员不需要考虑数据内部是怎么存储的,比如说如果我们想利用Conten

  • Android开发之DialogFragment用法实例总结

    本文实例讲述了Android开发之DialogFragment用法.分享给大家供大家参考,具体如下: 背景 Android 官方推荐使用 DialogFragment 来代替 Dialog ,可以让它具有更高的可复用性(降低耦合)和更好的便利性(很好的处理屏幕翻转的情况). 而创建 DialogFragment 有两种方式: 1. 覆写其 onCreateDialog 方法 - ① 2. 覆写其 onCreateView 方法 - ② 虽然这两种方式都能实现相同的效果,但是它们各有自己适合的应用

  • Android开发之EditText框输入清理工具类示例

    本文实例讲述了Android开发之EditText框输入清理工具类.分享给大家供大家参考,具体如下: 这个工具类主要用于清理输入框的.当然有的还要依情况而定 package com.maobang.imsdk.util; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.widget.EditText; import android.wid

  • Android开发之Activity管理工具类完整示例

    本文实例讲述了Android开发之Activity管理工具类.分享给大家供大家参考,具体如下: 这个工具类是对Activity的一些管理,非常适用 package com.maobang.imsdk.util; import java.util.Stack; import android.app.Activity; import android.app.ActivityManager; import android.content.Context; import android.graphics

  • Android开发之Fragment懒加载的几种方式及性能对比

    目录 1. Support时代的懒加载 2. AndrodX时代的懒加载 3. ViewPager2时代的懒加载 4. ViewPage和ViewPager2的性能对比 Android开发中ViewPager+Fragment的懒加载 TabLayout+ViewPager+Fragment是我们开发常用的组合.ViewPager的默认机制就是把全部的Fragment都加载出来,而为了保障一些用户体验,我们使用懒加载的Fragment,就是让我们再用户可见这个Fragment之后才处理业务逻辑.

  • Android开发之permission动态权限获取详解

    Android开发之permission动态权限获取,供大家参考,具体内容如下 说明 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予.这样就不需要在安装时被强迫同意某些权限. 设备系统是 Android 6.0 (API 23) 或更高版本,并且应用的 targetSdkVersion 是 23 或更高版本,则针对在 Andro

  • Android开发之Kotlin委托的原理与使用详解

    目录 前言 一.接口/类委托 二.属性委托 三.延迟委托 四.观察者委托 五.Map委托 总结 前言 在设计模式中,委托模式(Delegate Pattern)与代理模式都是我们常用的设计模式(Proxy Pattern),两者非常的相似,又有细小的区分. 委托模式中,委托对象和被委托对象都是同一类型的对象,委托对象将任务委托给被委托对象来完成.委托模式可以用于实现事件监听器.回调函数等功能. 代理模式中,代理对象与被代理对象是两种不同的对象,代理对象代表被代理对象的功能,代理对象可以控制客户对

  • Android开发之Button事件实现与监听方法总结

    本文实例总结了Android开发之Button事件实现与监听方法.分享给大家供大家参考,具体如下: 先来介绍Button事件实现的两种方法 main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="

  • Android开发之button事件监听简单实例

    本文实例讲述了Android开发之button事件监听用法.分享给大家供大家参考.具体如下: 事件监听的listener,有以下几种方式: 1.声明一个普通的class,实现OnClickListener接口,然后在button的setOnClickListener中new该类的一个对象. 2.使用匿名内部类,直接 btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { S

随机推荐