java给android 数据接口验证_[转载]android获取网络数据(一)--标准的Java接口操作...

直接获取数据:只需要打开一个HttpURLConnection连接,然后取得里面的数据,之后关闭这个连接

以get方式获得数据,只要对地址直接加上要传递的参数即可。

如果一POST方式获得数据,则需要setRequestMethod设置,然后将我们要传递的参数内容通过writeBytes方法写入数据流。代码如下:

Activity01.java:

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class Activity01 extends Activity

{

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button button_http = (Button) findViewById(R.id.Button_HTTP);

button_http.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v)

{

Intent intent = new Intent();

intent.setClass(Activity01.this, Activity02.class);

startActivity(intent);

Activity01.this.finish();

}

});

Button button_Get = (Button) findViewById(R.id.Button_Get);

button_Get.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v)

{

Intent intent = new Intent();

intent.setClass(Activity01.this, Activity03.class);

startActivity(intent);

Activity01.this.finish();

}

});

Button button_Post = (Button) findViewById(R.id.Button_Post);

button_Post.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v)

{

Intent intent = new Intent();

intent.setClass(Activity01.this, Activity04.class);

startActivity(intent);

Activity01.this.finish();

}

});

}

}

直接访问:Activity02.java

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

//直接获取数据

public class Activity02 extends Activity

{

private final String DEBUG_TAG = "Activity02";

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.http);

TextView mTextView = (TextView)this.findViewById(R.id.TextView_HTTP);

//http地址

String httpUrl = "http://www.baidu.com";

//获得的数据

String resultData = "";

URL url = null;

try

{

//构造一个URL对象

url = new URL(httpUrl);

}

catch (MalformedURLException e)

{

Log.e(DEBUG_TAG, "MalformedURLException");

}

if (url != null)

{

try

{

//使用HttpURLConnection打开连接

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

//得到读取的内容(流)

InputStreamReader in = new InputStreamReader(urlConn.getInputStream());

// 为输出创建BufferedReader

BufferedReader buffer = new BufferedReader(in);

String inputLine = null;

//使用循环来读取获得的数据

while (((inputLine = buffer.readLine()) != null))

{

//我们在每一行后面加上一个"n"来换行

resultData += inputLine + "n";

}

//关闭InputStreamReader

in.close();

//关闭http连接

urlConn.disconnect();

//设置显示取得的内容

if ( resultData != null )

{

mTextView.setText(resultData);

}

else

{

mTextView.setText("读取的内容为NULL");

}

}

catch (IOException e)

{

Log.e(DEBUG_TAG, "IOException");

}

}

else

{

Log.e(DEBUG_TAG, "Url NULL");

}

//设置按键事件监听

Button button_Back = (Button) findViewById(R.id.Button_Back);

button_Back.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

Intent intent = new Intent();

intent.setClass(Activity02.this, Activity01.class);

startActivity(intent);

Activity02.this.finish();

}

});

}

}

POST方式传递:Activity04.java:

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

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.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

//以post方式上传参数

public class Activity04 extends Activity

{

private final String DEBUG_TAG = "Activity04";

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.http);

TextView mTextView = (TextView)this.findViewById(R.id.TextView_HTTP);

//http地址"?par=abcdefg"是我们上传的参数

String httpUrl = "http://www.baidu.com";

//获得的数据

String resultData = "";

URL url = null;

try

{

//构造一个URL对象

url = new URL(httpUrl);

}

catch (MalformedURLException e)

{

Log.e(DEBUG_TAG, "MalformedURLException");

}

if (url != null)

{

try

{

// 使用HttpURLConnection打开连接

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

//因为这个是post请求,设立需要设置为true

urlConn.setDoOutput(true);

urlConn.setDoInput(true);

// 设置以POST方式

urlConn.setRequestMethod("POST");

// Post 请求不能使用缓存

urlConn.setUseCaches(false);

urlConn.setInstanceFollowRedirects(true);

// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的

urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

// 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,

// 要注意的是connection.getOutputStream会隐含的进行connect。

urlConn.connect();

//DataOutputStream流

DataOutputStream out = new DataOutputStream(urlConn.getOutputStream());

//要上传的参数

String content = "par=" + URLEncoder.encode("ABCDEFG", "gb2312");

//将要上传的内容写入流中

out.writeBytes(content);

//刷新、关闭

out.flush();

out.close();

//获取数据

BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));

String inputLine = null;

//使用循环来读取获得的数据

while (((inputLine = reader.readLine()) != null))

{

//我们在每一行后面加上一个"n"来换行

resultData += inputLine + "n";

}

reader.close();

//关闭http连接

urlConn.disconnect();

//设置显示取得的内容

if ( resultData != null )

{

mTextView.setText(resultData);

}

else

{

mTextView.setText("读取的内容为NULL");

}

}

catch (IOException e)

{

Log.e(DEBUG_TAG, "IOException");

}

}

else

{

Log.e(DEBUG_TAG, "Url NULL");

}

Button button_Back = (Button) findViewById(R.id.Button_Back);

button_Back.setOnClickListener(new Button.OnClickListener()

{

public void onClick(View v)

{

Intent intent = new Intent();

intent.setClass(Activity04.this, Activity01.class);

startActivity(intent);

Activity04.this.finish();

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值