httpclient发送GET和POST请求方式的具体步骤

HttpClient方式发送GET和POST请求实现和后台服务器的通信:
这里只给出了使用httpclient方式发送request所必须要经历的步骤:
以以下代码为例:
发送GET请求
(1)定义get方式要提交的数据(String name = et_username.getText().toString().trim();
String pwd = et_password.getText().toString().trim();)(括号为获取输入框的数据) 如果提交中文 要对name和pwd进行一个urlencode编码 如下:服务器URL地址+发送的数据

String path ="服务器URL地址?username="+URLEncoder.encode(name, "utf-8")+"&password="+URLEncoder.encode(pwd, "utf-8")+"";

(2)获取httpclient实例:因为httpclient是一个接口不能直接进行实例化,需用其实现子类DefaultHttpClient

DefaultHttpClient client=new DefaultHttpClient();

(3)准备get请求定义一个httpget实现get请求:

 HttpGet get=new HttpGet(path);

(4)执行一个get请求 (HttpResponse就是服务器返回的内容,封装到了HttpResponse中)

HttpResponse response=client.execute(get);

(5)获取服务器返回的状态码

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

(6)根据状态码判断数据是否成功返回,获取服务器的数据(一流的形式返回)

 if(code==200){
      // 获取服务器返回的数据  流的形式返回
       InputStream inputStream=response.getEntity().getContent();
      //将流数据转化成字符串
     (JAVA  I/O流数据转换为字符串)
       //展示结果弹出土司判断是否登录成功
        (弹出toast)
      }

发送POST请求
(1)获取输入框的数据。

String name = et_username.getText().toString().trim();
    String pwd = et_password.getText().toString().trim();

(2)定义服务器url

String path ="serverURL";

(3)获取httpclient对象

DefaultHttpClient client =new DefaultHttpClient();

(4)准备parameters

List<NameValuePair> lists=new ArrayList<NameValuePair>();

(5)数据)准备NameValuePair实际上就是用户要提交到服务器的key,
value:用户输入的值:

BasicNameValuePair  nameValuePair=new BasicNameValuePair("username", name);
BasicNameValuePair  pwdValuePair=new BasicNameValuePair("password", pwd);

(6)将用户输入的数据(nameValuePair、pwdValuePair)加入到集合中:

lists.add(nameValuePair);
lists.add(pwdValuePair);

(7)准备entity(数据以实体的方式存储,也就是键值对)

UrlEncodedFormEntity entity=new UrlEncodedFormEntity(lists);//参数是parameters

(8)准备post请求

HttpPost post=new HttpPost(path);

(9)准备post方式提交的数据 以实体形式准备(键值对形式)

post.setEntity(entity);

(10)执行post请求 返回的数据封装到httpresponse中

HttpResponse response=client.execute(post);

(11)获取服务器返回的状态吗

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

(12)获取数据,转换为字符串,显示到UI

if(code==200){
     //[5]获取服务器返回的数据  以流的形式返回
     InputStream inputStream= response.getEntity().getContent();
     //[6]将流数据转化为字符串
    
     //[7]显示服务器返回的数据
  
    }

注:
POST请求比GET请求要难一些,刚学习的建议按照以下步骤进行书写:
(1)、(2)、(3)、(8)、(10)、(9)、(7)、(4)、(5)、(6)、(11)、(12)
步骤还是上面的步骤,建议按照上面的顺序写,看清每一个类的返回值和所需要的参数,便可以将整个POST请求的步骤联系起来,有助于你理解和今后的使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值