赵雅智_android http get请求

<!-- 添加网络访问权限 -->

<uses-permission android:name="android.permission.INTERNET"/>

布局文件 activity_login.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:textSize="20sp"
		android:layout_alignBaseline="@+id/editusername"
		android:text="@string/username"/>

    <EditText
        android:id="@+id/editusername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/username"
        android:hint="@string/edit_username"
        />

        <TextView
        android:id="@+id/password"
        android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:textSize="20sp"
		android:layout_below="@+id/username"
		android:layout_alignBaseline="@+id/editpass"
		android:text="@string/password"/>

    <EditText
        android:id="@+id/editpass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/password"
        android:layout_below="@+id/editusername"
        android:hint="@string/edit_password"
        />

    <Button
        android:id="@+id/btn_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="80dp"
        android:layout_below="@+id/password"
        android:layout_marginLeft="50dp"
        android:text="@string/btn_sure"
        android:onClick="login"
        />

    <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:layout_alignBaseline="@+id/btn_login"
        android:layout_below="@+id/editpass"
        android:layout_toRightOf="@+id/btn_login"
       	android:text="@string/checkbox"
       	/>

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="@string/tip_result"/>
</RelativeLayout> 

String.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">lesson03</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

    <string name="username">用户名</string>
	<string name="password">密    码</string>
	<string name="edit_username">请输入用户名</string>
	<string name="edit_password">请输入密码</string>
 	<string name="btn_sure">确定</string>
    <string name="checkbox">是否记住密码</string>

    <string name="tip_result">服务器返回的数据</string>
</resources>

流转字符工具类 StreamTools.java

package com.example.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class StreamTools {
/**
 * 把流轉換成字符串
 * @param is
 * @return
 */
	public static String streamToStr(InputStream is){

		try {
			// 字节的输出流
			ByteArrayOutputStream os = new ByteArrayOutputStream();
			// 定义读取长度
			int len = 0;
			// 定义缓冲区
			byte buffer[] = new byte[1024];
			// 从输入流中读取,并写入os对象中
			while ((len = is.read(buffer)) != -1) {
				os.write(buffer, 0, len);
			}
			// 关闭流
			is.close();
			os.close();
			// 写到字节流
			return new String(os.toByteArray());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
}

Activity类 LoginActivity.java

package com.example.android_http;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.example.util.StreamTools;

public class LoginActivity extends Activity {
	private EditText et_username;
	private EditText et_password;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_login);
		findView();

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.login, menu);
		return true;
	}

	public void findView() {
		et_password = (EditText) findViewById(R.id.editpass);
		et_username = (EditText) findViewById(R.id.editusername);
	}

	public void login(View v) {
		// 获取点击控件的id
		int id = v.getId();
		// 根据id进行判断
		switch (id) {
		case R.id.btn_login:// 进行登录操作
			// Toast.makeText(getApplicationContext(), "--", 0).show();
			// 获取用户名密码
			final String userName = et_username.getText().toString();
			final String userPass = et_password.getText().toString();

			// 判断是否为空
			if (TextUtils.isEmpty(userName) || TextUtils.isEmpty(userPass)) {
				Toast.makeText(getApplicationContext(), "用户名或者密码不能为空", 0)
						.show();
			} else {
				Toast.makeText(getApplicationContext(), "發送請求道服務器", 0)
				.show();
				// 访问网络(需要一个网络的权限)
				// 访问网络(好事操作)子线程,避免阻塞主线程UI
				// http://172.16.237.200:8080/video/login.do?username=chj&userpass=123

				// 所有耗時操作都要在子線程中
				new Thread() {
					public void run() {
						try {
							// 请求地址
							String spec = "http://172.16.237.200:8080/video/login.do?username="
									+ userName + "&userpass=" + userPass;
							// 根据地址创建URL对象(网络访问url)
							URL url = new URL(spec);
							// 采用http协议打开的连接对象
							HttpURLConnection urlConnection = (HttpURLConnection) url
									.openConnection();
							urlConnection.setRequestMethod("GET");// 以get方式发起请求
							urlConnection.setReadTimeout(5000);// 设置超时
							urlConnection.setConnectTimeout(5000);// 设置连接超时
							urlConnection
									.setRequestProperty("User-Agent",
											"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
							// 获取相应的 code 400 200 505 302
							if (urlConnection.getResponseCode() == 200) {
								// 得到网络返回的输入流
								InputStream is = urlConnection.getInputStream();
								String result = StreamTools.streamToStr(is);

								System.out.println("返回的数据是:" + result);
							} else {
								System.out.println("请求url失败");
							}

						} catch (Exception e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					};
				}.start();

			}
			break;

		default:
			break;
		}
	}
}

赵雅智_android http get请求,布布扣,bubuko.com

时间: 2024-10-12 18:36:18

赵雅智_android http get请求的相关文章

赵雅智_android多线程下载带进度条

progressBar说明 在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度.一个进度条也可不确定其进度.在不确定模式下,进度条显示循环动画.这种模式常用于应用程序使用任务的长度是未知的. XML重要属性 android:progressBarStyle:默认进度条样式 android:progressBarStyleHorizontal:水平样式 progressBar重要方法 getMax():返回这个进度条的范围的

赵雅智_android使用adb命令详解附图

adb是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备 我们除了用可视化窗口中操作也可以采用cmd命令行进行操作. 在开始菜单的搜索栏中输入cmd打开命令行 在本地找到adb.exe路径(如图1.1),把adb.exe拖到cmd命令行敲击回车显示所有可操作帮助示例(如图1.2). 图1.1 adb.exe路径 图1.2 adb命令示例 如果不输入adb的正确路径就不能进行正常显示,如图1.3: 图1.3adb未能正确打开 为了保证adb在任何路径下都能使用,

赵雅智_Android短信发送器

注意要点: 1)必须要在AndroidManifest.xml中添加发送短信权限<uses-permission android:name="android.permission.SEND_SMS" /> 设置视图:setContentView(R.layout.布局xml文件); 2)查找控件:findViewById(R.id.控件id); 3)监听按钮事件:控件.setOnClickListener(this),实现OnClickListener接口 4)获取edit

赵雅智_android实例_当监听类有数据更新时下拉刷新

之前两篇文章分别介绍了OnScrollListener的实现和ContentProvider监听数据的变化,下面我们就结合者两个知识点实现一个小项目 项目需求 使用当ContentProvider监听类有数据更新时,在当前界面进行提示,并用OnScrollListener实现下拉刷新 实现效果 通过ContentProvider显示数据在界面 当监听类发生变化时 下拉刷新后显示数据 实现步骤 android_sqlite项目 定义操作标识 匹配结果码 继承ContentProvider类重写方法

赵雅智_android系统联系人app分析并获取数据

手机联系人存放位置 和短信一样在data-data下 手机联系人数据库解析 将contacts2.db表导出,通过SQLiteexpert查看 mimetypes表:存放的数据类型(电话,头像,姓名,邮箱) 外键: raw_contacts表:存放联系人的id contact_id:联系人id display_name:联系人姓名 data表:存放联系人的数据 data1:联系人数据 data2:在mimetypes表中data1表示值得意义 mimetype_id:联系人ID,data数据所属

赵雅智_android样式与主题

样式与主题的区别 样式应用于特殊的组件,主题应用与整个应用或整个Activity 主题不仅单单显示内容的风格(大小.颜色),而且可以设置窗口的显示风格 当主题的设置属性与样式的设置属相相同时,系统按样式的设置属性显示 系统定义的一些常有主题: <activity android:theme="@android:style/Theme.Dialog"></activity>对话框风格 <activity android:theme="@androi

赵雅智_Android Paint

要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: setAntiAlias: 设置画笔的锯齿效果. setColor: 设置画笔颜色 setARGB:  设置画笔的a,r,p,g值. setAlpha:  设置Alpha值 setTextSize: 设置字体尺寸. setStyle:  设置画笔风格,空心或者实心. setStrokeWidth: 设置

赵雅智_android测试

测试概念 从是否关心软件内部结构和具体实现的角度划分 黑盒测试:只关心程序执行的过程和结果 白盒测试:根据源代码写测试方法或者测试用例 灰盒测试:是介于白盒测试与黑盒测试之间的 从软件开发的过程按阶段划分有 A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试 F.回归测试 G.Alpha测试 新建测试项目测试 新建测试项目 新建测试类 在本类创建测试类 新建测试类继承AndroidTestCase类 配置测试设备和类库 配置测试设备 配置类库 AndroidManifest.x

赵雅智_Android案例_刮刮乐

实现效果 主要代码 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <I