HttpUrlConnection
2016-01-24 20:37
639 查看
package com.ch.day4_httpurlconn;
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.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView jsonData;
private Button login;
//服务器地址,路径
public static final String JSON_URL = "http://169.254.109.73:8080/tqyb/newsList.json";
public static final String LOGIN_URL = "http://169.254.109.73:8080/serverof1407a/loginServlet";
//定义一个handler的匿名内部类的对象
Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what == 1){
jsonData.setText((String)msg.obj);
}else if(msg.what == 2){
login.setText((String)msg.obj);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init(){
jsonData = (TextView) findViewById(R.id.jsonData);
login = (Button) findViewById(R.id.login);
//点击login到服务器登陆验证
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在次线程中,请求web服务器
new Thread(){
public void run() {
//调用httpurlconnection的get请求,到服务器请求json数据
// String rs = loginByServerByGet("admin", "123456");
String rs = loginByServerByPost("admin1", "123456");
//在此次线程中,通过handler把数据传递给主线程,显示在主线程的组件中
handler.sendMessage(handler.obtainMessage(2, rs));
if("success".equals(rs)){
//跳转到功能页面,
}else{
//提示登录失败,请修改登录信息等等
}
};
}.start();
}
});
jsonData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在次线程中,请求web服务器
new Thread(){
public void run() {
//调用httpurlconnection的get请求,到服务器请求json数据
String rs = getJsonFromWeb();//此方法请求web服务器
//在此次线程中,通过handler把数据传递给主线程,显示在主线程的组件中
handler.sendMessage(handler.obtainMessage(1, rs));
};
}.start();
}
});
}
//到服务器验证登陆信息,,通过post请求
public String loginByServerByPost(String name,String pass){
String rs = "";
URL url = null;
HttpURLConnection urlConn = null;
BufferedReader br = null;
DataOutputStream output = null;
// StringBuffer sb = new StringBuffer();//定义缓存字符串,拼装字符串
try {
url = new URL(LOGIN_URL);//创建和服务器的连接对象URL
urlConn = (HttpURLConnection) url.openConnection();//打开连接
urlConn.setConnectTimeout(5*1000);//设置连接超时容忍时间
urlConn.setReadTimeout(5*1000);//设置读取时间
//设置post请求
urlConn.setRequestMethod("POST");
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
//通过post请求,向服务器传值
output = new DataOutputStream(urlConn.getOutputStream());//创建服务器的输出流
String data = "username="+name+"&userpass="+pass;
output.write(data.getBytes());
output.flush();
output.close();//传值成功,完毕
if(urlConn.getResponseCode() == 200){//如果响应码为200表示响应成功,并且同时成功的相应了数据
//获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"utf-8"));
rs = br.readLine();//获得服务器返回的简单数据
System.out.println(rs);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;//转换为字符串,返回
}
//到服务器验证登陆信息,,通过get请求
public String loginByServerByGet(String name,String pass){
String rs = "";
URL url = null;
HttpURLConnection urlConn = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer(LOGIN_URL);//定义缓存字符串,拼装字符串
try {
sb.append("?username="+name);
sb.append("&userpass="+pass);
System.out.println(sb.toString());
url = new URL(sb.toString());//创建和服务器的连接对象URL
urlConn = (HttpURLConnection) url.openConnection();//打开连接
urlConn.setConnectTimeout(5*1000);//设置连接超时容忍时间
urlConn.setReadTimeout(5*1000);//设置读取时间
if(urlConn.getResponseCode() == 200){//如果响应码为200表示响应成功,并且同时成功的相应了数据
//获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"utf-8"));
rs = br.readLine();//获得服务器返回的简单数据
System.out.println(rs);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;//转换为字符串,返回
}
public String getJsonFromWeb(){
URL url = null;
HttpURLConnection urlConn = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer();//定义缓存字符串,拼装字符串
try {
url = new URL(JSON_URL);//创建和服务器的连接对象URL
urlConn = (HttpURLConnection) url.openConnection();//打开连接
urlConn.setConnectTimeout(5*1000);//设置连接超时容忍时间
urlConn.setReadTimeout(5*1000);//设置读取时间
if(urlConn.getResponseCode() == 200){//如果相应码为200表示响应成功,并且同时成功的相应了数据
//获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"utf-8"));
String str = null;
while((str = br.readLine()) != null){//一行行的读取,一行行的收集
sb.append(str);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();//转换为字符串,返回
}
}
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.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView jsonData;
private Button login;
//服务器地址,路径
public static final String JSON_URL = "http://169.254.109.73:8080/tqyb/newsList.json";
public static final String LOGIN_URL = "http://169.254.109.73:8080/serverof1407a/loginServlet";
//定义一个handler的匿名内部类的对象
Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what == 1){
jsonData.setText((String)msg.obj);
}else if(msg.what == 2){
login.setText((String)msg.obj);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init(){
jsonData = (TextView) findViewById(R.id.jsonData);
login = (Button) findViewById(R.id.login);
//点击login到服务器登陆验证
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在次线程中,请求web服务器
new Thread(){
public void run() {
//调用httpurlconnection的get请求,到服务器请求json数据
// String rs = loginByServerByGet("admin", "123456");
String rs = loginByServerByPost("admin1", "123456");
//在此次线程中,通过handler把数据传递给主线程,显示在主线程的组件中
handler.sendMessage(handler.obtainMessage(2, rs));
if("success".equals(rs)){
//跳转到功能页面,
}else{
//提示登录失败,请修改登录信息等等
}
};
}.start();
}
});
jsonData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在次线程中,请求web服务器
new Thread(){
public void run() {
//调用httpurlconnection的get请求,到服务器请求json数据
String rs = getJsonFromWeb();//此方法请求web服务器
//在此次线程中,通过handler把数据传递给主线程,显示在主线程的组件中
handler.sendMessage(handler.obtainMessage(1, rs));
};
}.start();
}
});
}
//到服务器验证登陆信息,,通过post请求
public String loginByServerByPost(String name,String pass){
String rs = "";
URL url = null;
HttpURLConnection urlConn = null;
BufferedReader br = null;
DataOutputStream output = null;
// StringBuffer sb = new StringBuffer();//定义缓存字符串,拼装字符串
try {
url = new URL(LOGIN_URL);//创建和服务器的连接对象URL
urlConn = (HttpURLConnection) url.openConnection();//打开连接
urlConn.setConnectTimeout(5*1000);//设置连接超时容忍时间
urlConn.setReadTimeout(5*1000);//设置读取时间
//设置post请求
urlConn.setRequestMethod("POST");
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
//通过post请求,向服务器传值
output = new DataOutputStream(urlConn.getOutputStream());//创建服务器的输出流
String data = "username="+name+"&userpass="+pass;
output.write(data.getBytes());
output.flush();
output.close();//传值成功,完毕
if(urlConn.getResponseCode() == 200){//如果响应码为200表示响应成功,并且同时成功的相应了数据
//获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"utf-8"));
rs = br.readLine();//获得服务器返回的简单数据
System.out.println(rs);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;//转换为字符串,返回
}
//到服务器验证登陆信息,,通过get请求
public String loginByServerByGet(String name,String pass){
String rs = "";
URL url = null;
HttpURLConnection urlConn = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer(LOGIN_URL);//定义缓存字符串,拼装字符串
try {
sb.append("?username="+name);
sb.append("&userpass="+pass);
System.out.println(sb.toString());
url = new URL(sb.toString());//创建和服务器的连接对象URL
urlConn = (HttpURLConnection) url.openConnection();//打开连接
urlConn.setConnectTimeout(5*1000);//设置连接超时容忍时间
urlConn.setReadTimeout(5*1000);//设置读取时间
if(urlConn.getResponseCode() == 200){//如果响应码为200表示响应成功,并且同时成功的相应了数据
//获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"utf-8"));
rs = br.readLine();//获得服务器返回的简单数据
System.out.println(rs);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;//转换为字符串,返回
}
public String getJsonFromWeb(){
URL url = null;
HttpURLConnection urlConn = null;
BufferedReader br = null;
StringBuffer sb = new StringBuffer();//定义缓存字符串,拼装字符串
try {
url = new URL(JSON_URL);//创建和服务器的连接对象URL
urlConn = (HttpURLConnection) url.openConnection();//打开连接
urlConn.setConnectTimeout(5*1000);//设置连接超时容忍时间
urlConn.setReadTimeout(5*1000);//设置读取时间
if(urlConn.getResponseCode() == 200){//如果相应码为200表示响应成功,并且同时成功的相应了数据
//获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(),"utf-8"));
String str = null;
while((str = br.readLine()) != null){//一行行的读取,一行行的收集
sb.append(str);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();//转换为字符串,返回
}
}
相关文章推荐
- Android HTTPS认证之Volley封装
- 低情商大神的思维,高情商的你会懂么?为什么非常多计算机老师都是坏脾气?为什么提问没人回答?为什么要通过网络自主学习?
- TCP_wapper访问控制机制
- 计算机网络——传输层
- Android 扩展OkHttp支持请求优先级调度
- linux 下使用 tc 模拟网络延迟和丢包
- https://projecteuler.net/problem=26
- TCP慢启动、拥塞避免、快速重传、快速回复
- 深入理解HTTP Session
- HDU3572_Task Schedule(网络流最大流)
- POJ Kaka's Matrix Travels (最大费用最大流)
- Java网络编程:从线程返回信息。
- Java实现爬虫给App提供数据(Jsoup 网络爬虫)
- iOS9 中不支持http
- busybox filesystem httpd php-5.5.31 sqlite3 webserver
- HTTP的长连接和短连接
- 【Java】下载网络上的图片并保存到本地目录
- WIFI网络访问(一)
- 多看Kindle的“导出失败,请检查网络或账号”错误的解决
- 分析tcp-rst数据报文产生场景以及判断谁主动断开连接