android 接口案例,安卓接口请求实例

首先一个工具类package com.luo.utils;

import java.io.IOException;

import java.io.InputStream;

import java.io.UnsupportedEncodingException;

import java.net.URLDecoder;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.NameValuePair;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.client.params.HttpClientParams;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.params.BasicHttpParams;

import org.apache.http.params.HttpConnectionParams;

import org.apache.http.params.HttpParams;

import org.apache.http.params.HttpProtocolParams;

import org.apache.http.protocol.HTTP;

import org.apache.http.util.EntityUtils;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.net.ConnectivityManager;

import android.net.http.AndroidHttpClient;

import android.util.Log;

import android.widget.Toast;

/**网络连接

* @author cnmobi-db

*

*/

public class MyConnect {

private static HttpParams httpParams;

private static HttpClient httpClient;

/**get方式请求

* @param url

* @param params

* @return

*/

public static String doGet(String url, Map params) {

/* 建立HTTPGet对象 */

String paramStr = "";

Set> set = params.entrySet();

for (Iterator> it = set.iterator(); it.hasNext();) {

Map.Entry entry = (Map.Entry) it.next();

System.out.println(entry.getKey() + "--->" + entry.getValue());

paramStr += paramStr = "&" + entry.getKey() + "=" + entry.getValue();

}

if (!paramStr.equals("")) {

paramStr = paramStr.replaceFirst("&", "?");

url += paramStr;

}

Log.d("strResult", url);

HttpGet httpRequest = new HttpGet(url);

String strResult = "doGetError";

try {

/* 发送请求并等待响应 */

HttpResponse httpResponse = httpClient.execute(httpRequest);

/* 若状态码为200 ok */

if (httpResponse.getStatusLine().getStatusCode() == 200) {

/* 读返回数据 */

strResult = EntityUtils.toString(httpResponse.getEntity());

} else {

//strResult = "Error Response: "

//+ httpResponse.getStatusLine().toString();

strResult = "404";

}

} catch (ClientProtocolException e) {

//strResult = e.getMessage().toString();

strResult = "404";

e.printStackTrace();

} catch (IOException e) {

//strResult = e.getMessage().toString();

strResult = "404";

e.printStackTrace();

} catch (Exception e) {

//strResult = e.getMessage().toString();

strResult = "404";

e.printStackTrace();

}

Log.d("strResult", strResult);

return strResult;

}

/**post方式请求

* @param session

* @param url

* @param params

* @return

*/

public static String doPost(String session,String url, List params) {

String www = url +"?";

for(int i =0; i

{

if(i != params.size()-1)

www = www + params.get(i).toString()+"&";

else

www = www + params.get(i).toString();

}

Log.d("strResult","url---> "+www);

/* 建立HTTPPost对象 */

HttpPost httpRequest = new HttpPost(url);

String strResult = "doPostError";

try {

/* 添加请求参数到请求对象 */

httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

if(session != null)

{

httpRequest.setHeader("Cookie", session);

System.out.println(session);

}

/* 发送请求并等待响应 */

HttpResponse httpResponse = httpClient.execute(httpRequest);

/* 若状态码为200 ok */

if (httpResponse.getStatusLine().getStatusCode() == 200) {

/* 读返回数据 */

strResult = EntityUtils.toString(httpResponse.getEntity(),HTTP.UTF_8);

} else {

strResult = "404";// "Error Response: " +

// httpResponse.getStatusLine().toString();

}

} catch (UnsupportedEncodingException e) {

strResult = "404";// e.getMessage().toString();

e.printStackTrace();

} catch (ClientProtocolException e) {

strResult = "404";// e.getMessage().toString();

e.printStackTrace();

} catch (IOException e) {

strResult = "404";// e.getMessage().toString();

e.printStackTrace();

} catch (Exception e) {

strResult = "404";// e.getMessage().toString();

e.printStackTrace();

}

Log.d("strResult", strResult);

try {

strResult = URLDecoder.decode(strResult, HTTP.UTF_8);

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Log.d("strResult", strResult);

return strResult;

}

/**配置httpclient

* @return

*/

public static HttpClient getHttpClient() {

// 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)

httpParams = new BasicHttpParams();

// 设置连接超时和 Socket 超时,以及 Socket 缓存大小

HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);

HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);

HttpConnectionParams.setSocketBufferSize(httpParams, 8192);

// 设置重定向,缺省为 true

HttpClientParams.setRedirecting(httpParams, true);

// 设置 user agent

String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";

HttpProtocolParams.setUserAgent(httpParams, userAgent);

// 创建一个 HttpClient 实例

httpClient = new DefaultHttpClient(httpParams);

return httpClient;

}

/**获取网络连通状态

* @param context

* @return

*/

public static boolean NetWorkStatus(Context context) {

boolean netSataus = false;

ConnectivityManager cwjManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

cwjManager.getActiveNetworkInfo();

if (cwjManager.getActiveNetworkInfo() != null) {

netSataus = cwjManager.getActiveNetworkInfo().isAvailable();

}

if(!netSataus)

Toast.makeText(context, "网络错误!", Toast.LENGTH_SHORT).show();

return netSataus;

}

/**获取网络图片

* @param url

* @return

*/

public static Bitmap loadImageFromInternet(String url) {

Bitmap bitmap = null;

HttpClient client = AndroidHttpClient.newInstance("Android");

HttpParams params = client.getParams();

HttpConnectionParams.setConnectionTimeout(params, 3000);

HttpConnectionParams.setSocketBufferSize(params, 3000);

HttpResponse response = null;

InputStream inputStream = null;

HttpGet httpGet = null;

try {

httpGet = new HttpGet(url);

response = client.execute(httpGet);

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

if (stateCode != HttpStatus.SC_OK) {

return bitmap;

}

HttpEntity entity = response.getEntity();

if (entity != null) {

try {

inputStream = entity.getContent();

return bitmap = BitmapFactory.decodeStream(inputStream);

} finally {

if (inputStream != null) {

inputStream.close();

}

entity.consumeContent();

}

}

} catch (ClientProtocolException e) {

httpGet.abort();

e.printStackTrace();

} catch (IOException e) {

httpGet.abort();

e.printStackTrace();

} finally {

((AndroidHttpClient) client).close();

}

return bitmap;

}

}

然后创建一个异步任务内部类class GethispetsAsyncTask extends AsyncTask {

ProgressDialog dialog = ProgressDialog.show(HeActivity.this, null,

"正在查询宠物信息,请稍后......");

private String url;

private String token;

private String uid;

public GethispetsAsyncTask(String url, String token, String uid) {

this.url = url;

this.token = token;

this.uid = uid;

}

@Override

protected Object doInBackground(Object... params) {

String code = "1";

MyConnect.getHttpClient();

Map parms = new LinkedHashMap();

parms.put("token", token);

parms.put("uid", uid);

String jsonContent = MyConnect.doGet(url, parms);

try {

JSONObject jsonObject = new JSONObject(jsonContent);

if (jsonObject != null) {

code = jsonObject.getString("code");

if (jsonObject.has("petArray")) {

String j1 = jsonObject.getString("petArray");

JSONArray j2 = new JSONArray(j1);

for (int i = 0; i 

JSONObject jsonObject2 = j2.getJSONObject(i);

String j3 = jsonObject2.getInt("weight") + " KG";

String j4 = jsonObject2.getString("nickname");

String j5 = jsonObject2.getString("birthday");

String j6 = jsonObject2.getString("breed");

HashMap map = new HashMap();

map.put("weight", j3);

map.put("name", j4);

map.put("bir", j5);

map.put("kind", j6);

hispetList.add(map);

}

}

if (jsonObject.has("terminalArray")) {

String ter = jsonObject.getString("terminalArray");

JSONArray termes = new JSONArray(ter);

for (int i = 0; i 

JSONObject jsonObject3 = termes.getJSONObject(i);

String terid = jsonObject3.getString("terminalId");

String dist = jsonObject3.getString("dist");

HashMap map1 = new HashMap();

map1.put("terminalId", terid);

map1.put("dist", dist);

histerList.add(map1);

}

}

}

} catch (JSONException e) {

e.printStackTrace();

}

return code;

}

@Override

protected void onPostExecute(Object result) {

super.onPostExecute(result);

System.out.println("-----result------>" + result);

dialog.dismiss();

if (result.equals("0")) {

hispetapter = new SimpleAdapter(HeActivity.this, hispetList,

R.layout.list_itemhispet, new String[] { "weight",

"bir", "kind", "name" }, new int[] {

R.id.weight, R.id.bir, R.id.kind, R.id.name });

listView.setAdapter(hispetapter);

histerapter = new SimpleAdapter(HeActivity.this, histerList,

R.layout.list_itemhister, new String[] { "terminalId",

"dist" }, new int[] { R.id.ter, R.id.dist });

listView2.setAdapter(histerapter);

} else if (result.equals("40008")) {

Toast.makeText(HeActivity.this, "身份信息过期,请重新登录",

Toast.LENGTH_SHORT).show();

} else {

}

}

}

最后启动异步任务new GethispetsAsyncTask(ConstantUtils.host1 + ConstantUtils.url_26,

ConstantUtils.token, uid + "").execute(null, null, null);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值