Android 提交数据方式

一、HttpClient方式进行get提交数据

1.获取httpclient实例

DefaultHttpClient client = new DefaultHttpClient();

2.准备get请求,定义一个httpget实现

HttpGet get = new HttpGet(path);

3.执行一个get请求

HttpResponse response = client.execute(get);

4.获取服务器返回的状态码

int code = response.getStatusLine().getStatusCode();

5.获取服务器返回的数据,以流的形式

if(code == 200){
    InputStream inputStream = response.getEntity().getContent();
}

6.把流转换成字符串

String content = StreamTools.readStream(inputStream);

7.展示结果

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        Toast.makeText(MainActivity.this,content,Toast.LENGTH_SHORT).show();
    }
});

 二、HttpClient方式进行post提交数据

与get方式第二步和第三步不同,并且要准备post方式提交的正文,依次准备所用参数

2.准备post请求,定义一个httpget实现

HttpGet post = new HttpGet(path);

3.准备post方式提交的正文,以实体形式准备(键值对形式) 

//准备parameters
List<NameValuePair> lists = new ArrayList<NameValuePair>();
//准备NameValuePair  实际上就是要提交的用户名和密码   key是服务器key:username,password
BasicNameValuePair nameValuePair = new BasicNameValuePair("username",name);
BasicNameValuePair pwdValuePair = new BasicNameValuePair("password",pwd);
//吧nameValuePair 和 pwdValuePair 加入到集合
lists.add(nameValuePair);
lists.add(pwdValuePair);
//准备entity
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(lists);
//准备post方式提交正文  以实体形式准备(键值对形式)
post.setEntity(entity);

 4.执行一个post请求

HttpResponse response = client.execute(post);

三、开源项目方式把数据提交到服务器(asyncHttpClient)

1.创建AsyncHttpClient

AsyncHttpClient client = new AsyncHttpClient();

2.进行get请求

client.get(path,new AsyncHttpResponseHandler(){

    //请求成功回调方法
    @Override
    public void onSuccess(int statusCode,Headers,byte[] responseBody){
        Toast.makeText(getApplicationContext(),new String(responseBody,"gbk"),Toast.LENGTH_SHORT).show();
    }

    //请求失败
    @Override
    public void onFailure(int statusCode,Header[] headers,byte[] responseBody,Throwable error){
        
    }
});

3.进行post请求

RequestParams params = new RequesParams();
params.put("username",name);
params.put("password",pwd);

client.post(path,params,new AsyncHttpResponseHandler(){

    //请求成功回调方法   不是登录成功
    @Override
    public void onSuccess(int statusCode,Headers,byte[] responseBody){
        Toast.makeText(getApplicationContext(),new String(responseBody,"gbk"),Toast.LENGTH_SHORT).show();
    }

    //请求失败
    @Override
    public void onFailure(int statusCode,Header[] headers,byte[] responseBody,Throwable error){
        
    }

});

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值