关闭

android get和post请求

标签: androidurl
105人阅读 评论(0) 收藏 举报
分类:


//把一个inputStream 转换成一个String 类

package com.example.logiddddddn;



import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;


public class StreamTools {

//把一个inputStream 转换成一个String
public static String readStream(InputStream in) throws Exception{

//定义一个央存输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();

int len = -1;
byte[] butter = new byte[1024];
while((len = in.read(butter)) != -1){
baos.write(butter,0,len);
}
in.close();
String content = new String(baos.toByteArray());

return content;
}


}





package com.example.logiddddddn;


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


import android.app.Activity;
import android.os.Bundle;
import android.text.style.ClickableSpan;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity {


private EditText et_username;
private EditText et_password;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1 找到控件的对像
et_username = (EditText)findViewById(R.id.te_username);
et_password = (EditText)findViewById(R.id.te_password);


}

//点击按钮 进行get方式提交数据
public void click1(View v){

new Thread(){ public void run(){



try {
//2 拿到控件上的内容
String name = et_username.getText().toString().trim();
String pwd = et_password.getText().toString().trim();

//3 定义get 方式要提交的路经
String path = "http://192.168.1.11:87080/login/LoginServlet?username="+URLEncoder.encode(name,"utf-8")+"&password="+URLEncoder.encode(pwd, "utf-8")+"";

//4

//1 创建 url对像 
URL url = new URL(path);
//2  拿到httpurlconnection对像 用发送或乾接收数据
HttpURLConnection conn  = (HttpURLConnection) url.openConnection();

//3 设置发送get请求
conn.setRequestMethod("GET");  //get 要求大写, 默认就是get请求
//4  设置请求超时时间
conn.setConnectTimeout(50);
//5 获取服务返回的状态码
int code = conn.getResponseCode();
//5.1  如果code == 200请求成功
if(code == 200){
//6  获取服务器返回的数据  以流的形式返回
InputStream inputStream = conn.getInputStream();

//6.1 把inputstream 转换成String类型
String content = StreamTools.readStream(inputStream);

//7 把服务器返回的数据 展示到Toast上  不能在子线程上展示toast
showToast(content);

}

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

}}.start();

}



//点击按钮 进行post方式提交数据
public void click2(View v){

new Thread(){ public void run(){



try {
//2 拿到控件上的内容
String name = et_username.getText().toString().trim();
String pwd = et_password.getText().toString().trim();

//3 定义get 方式要提交的路经     
//  String path = "http://192.168.1.11:87080/login/LoginServlet?username="+name+"&password="+pwd+""; 
String data ="username="+URLEncoder.encode(name, "utf-8")+"&ppassword="+URLEncoder.encode(pwd, "utf-8")+"";
// 一  post 请求路经
String path = "http://192.168.11.73:8080/login/LoginServlet";


//4

//1 创建 url对像 
URL url = new URL(path);
//2  拿到httpurlconnection对像 用发送或乾接收数据
HttpURLConnection conn  = (HttpURLConnection) url.openConnection();

//3  二    设置发送get请求   写城post
conn.setRequestMethod("POST");  //get 要求大写, 默认就是get请求
//4  设置请求超时时间
conn.setConnectTimeout(5000);

//三  和 get方式提交数据 区别要多设置2个请求头信息
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

conn.setRequestProperty("content-Length",data.length()+"");

//四 把我们组拼好的数据提交服务器
conn.setDoOutput(true);  //设置一个标记 允许输出
conn.getOutputStream().write(data.getBytes());


//5 获取服务返回的状态码
int code = conn.getResponseCode();
//5.1  如果code == 200请求成功
if(code == 200){
//6  获取服务器返回的数据  以流的形式返回
InputStream inputStream = conn.getInputStream();

//6.1 把inputstream 转换成String类型
String content = StreamTools.readStream(inputStream);

//7 把服务器返回的数据 展示到Toast上  不能在子线程上展示toast
showToast(content);

}

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

}}.start();


}


//封装toast方法 该方法执行在主线程
public void showToast(final String content){

runOnUiThread(new Runnable() {

@Override
public void run() {
// 执行在主线程上 弹出信息
Toast.makeText(getApplicationContext(), content, 1).show();

}
});

}

}





0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android Http方法:Get请求与Post请求的区别及实例示范

Http方法:Get请求与Post请求的区别 Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求 Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修改...
  • chenlove1
  • chenlove1
  • 2014-04-30 09:54
  • 7204

Retrofit2的get请求和post请求

准备工作 compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-gson...
  • Android_Study_OK
  • Android_Study_OK
  • 2016-05-23 11:35
  • 16089

WebView的使用(http协议访问网络Get和Post请求方式)

概念 webView使用方法加载网页超链接和本地连接资源 WebView装载HTML代码Http协议访问网络 概念: 是一个开放的浏览器组件,是基于WebKit内核开发出来的,像苹果的S...
  • ytfunnysite
  • ytfunnysite
  • 2017-03-13 12:37
  • 2191

Android 通过get和post方法访问网络

此demo演示android通过get和post请求方法同服务器交互,因此需要搭建一个服务器测试,可以使用Tomcat,具体方法参考:http://blog.csdn.net/youmingyu/ar...
  • youmingyu
  • youmingyu
  • 2016-09-13 11:46
  • 2748

Android Volley解析(一)之GET、POST请求篇

一、 Volley 的地位自2013年Google I/O 大会上,Google 推出 Volley 之后,一直到至今,由于其使用简单、代码轻量、通信速度快、并发量大等特点,倍受开发者们的青睐。
  • jxxfzgy
  • jxxfzgy
  • 2015-03-09 16:05
  • 13087

Android网络请求库okHttp进行post、get请求

OKHttp是一个Java 的 HTTP+SPDY 客户端开发包,同时也支持 Android。需要Android 2.3以上。 特点 OKHttp是Android版Http客户端。非常高效...
  • rongwenbin
  • rongwenbin
  • 2016-04-28 10:47
  • 1075

Android 通过GET和POST方式提交参数给web应用

如何把数据上传到web应用 应用界面: 视频名称:title 时长:timelength 保存,点击保存按钮提交到web应用中,web应用中开发Manageservlet来接收数据。 get...
  • Yueyuehu001
  • Yueyuehu001
  • 2014-08-13 00:09
  • 882

android开发http请求POST&GET封装工具

最近一直想着封装个网络请求框架,但是看到有很多博客有封装而且还不错,于是就想着封装一个安卓带的,以便自己以后使用. 一,请求成功和失败回调接口public interface OnResponseLi...
  • wangjiangjun0815
  • wangjiangjun0815
  • 2017-03-10 11:41
  • 659

我的Android之旅(十)----URI 异步任务AsyncTask和get || post请求

URI: 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理...
  • qq_35146862
  • qq_35146862
  • 2016-08-11 14:54
  • 867

HTTP请求中POST与GET的区别

一、原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。 HTTP定义了与服务器...
  • yipiankongbai
  • yipiankongbai
  • 2014-04-18 17:15
  • 98875
    个人资料
    • 访问:779次
    • 积分:77
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档