一、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){
}
});