Android(安卓)实现一个http 带参数登录
package com.souba.service; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.util.Log; import android.util.Xml; public class HttpUtilService { /** * 登录时发送参数 请求WEB应用 * @param path 请求路径 * @param params 请求参数 * @param encoding 请求编码 * @return 请求成功 true 失败 false * @throws Exception */ public boolean sendParamsPost(String path,Map<String, String>params,String encoding) throws Exception { boolean bool = false; List<NameValuePair> parm = new ArrayList<NameValuePair>(); if(params!=null && !params.isEmpty()) { for(Map.Entry<String, String> entry:params.entrySet()) { parm.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } } UrlEncodedFormEntity entity=new UrlEncodedFormEntity(parm,encoding); HttpPost post=new HttpPost(path); post.setEntity(entity); DefaultHttpClient client=new DefaultHttpClient(); HttpResponse response=client.execute(post); if(response.getStatusLine().getStatusCode()==200) { byte[] data=new byte[1024]; data=EntityUtils.toByteArray(response.getEntity());//把服务器端传来的数据转化为字节数组 ByteArrayInputStream bais=new ByteArrayInputStream(data);//绑定字节流和数据包装流 DataInputStream dataInputStream=new DataInputStream(bais); bool=parseXML(dataInputStream); Log.i("sendParamsPost",bool+""); } return bool; } /** * 解析服务端返回的XML数据 true 登录成功 * @param dataInputStream 从response获得的输入流 * @return boolean * @throws XmlPullParserException * @throws IOException */ public boolean parseXML(DataInputStream dataInputStream) throws XmlPullParserException, IOException { XmlPullParser parser=Xml.newPullParser(); parser.setInput(dataInputStream,"UTF-8"); int event=parser.getEventType(); String flag=""; while(event!=XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_TAG: if("result".equals(parser.getName())) { flag=parser.nextText(); Log.i("parseXML",flag); } break; } event=parser.next(); } if("false".equals(flag)) { return false; } return true; } }
更多相关文章
- Android腾讯微薄客户端开发十三:提及篇(与我有关的微博)
- Android(安卓)SQLiteDatabase 的使用
- 服务器向Android写一个对象
- Android中JSON数据格式的简单使用
- Android(安卓)获取手机联系人信息
- android > SMS 短信数据库访问
- android之bundle传递数据--两个activities之间
- Android(安卓)AES 文件加密解密
- mybatisplus的坑 insert标签insert into select无参数问题的解决