`
dengwenwei121
  • 浏览: 36366 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

HttpClient调试android接口-通用方法

 
阅读更多

最近公司要我调试android接口,就封装了一下,记录下来。。做为笔记吧!


package com.dw.test;


public class User {
	  private String id;
	  private String username;
	  private String password;
	  
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password="
				+ password + "]";
	}
	
}

package com.dw.util;

import java.util.List;

import net.sf.json.JSONArray;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HttpClientUtil<T> {
	/**
	 * post请求方法, 返回一个对象集合
	 * 
	 * @param url 请求的url
	 * @param objectClass class对象,你想要返回的对象
	 * @param formparams  请求参数
	 * @return List<T> 返回对象集合
	 * @throws Exception
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public List<T> getListPost(String url, Class objectClass,
			List<NameValuePair> formparams) throws Exception {
		// 创建默认的httpClient实例.
		CloseableHttpClient httpclient = HttpClients.createDefault();
		List<T> objList = null;
		try {
			// 创建httppost
			HttpPost httppost = new HttpPost(url);
			// 设置请求的表单编码
			UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(
					formparams, "UTF-8");

			// 设置http请求参数
			httppost.setEntity(uefEntity);

			System.out.println("executing request " + httppost.getRequestLine());

			// 发送请求
			CloseableHttpResponse response = httpclient.execute(httppost);
			// 请求响应码
			int code = response.getStatusLine().getStatusCode();
			if (code == 200) {
				try {
					// 获取响应的数据
					HttpEntity entity = response.getEntity();

					if (entity != null) {
						String json = EntityUtils.toString(entity, "UTF-8");

						System.out.println("Response content: " + json);

						JSONArray jsonobj = JSONArray.fromObject(json);

						objList = (List<T>) JSONArray.toCollection(jsonobj,
								objectClass);
					}
				} finally {
					response.close();
				}
			} else {
				System.out.println("请求失败!");
			}
		} finally {
			httpclient.close();
		}
		return objList;
	}

	/**
	 * post请求方法, 返回一个对象
	 * 
	 * @param url 请求的url
	 * @param objectClass class对象,你想要返回的对象
	 * @param formparams 设置请求参数
	 * @return T 返回对象
	 * @throws Exception
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public T getObjPost(String url, Class objectClass,
			List<NameValuePair> formparams) throws Exception {
		// 创建默认的httpClient实例.
		CloseableHttpClient httpclient = HttpClients.createDefault();
		T obj = null;
		try {
			// 创建httppost
			HttpPost httppost = new HttpPost(url);
			// 设置请求的表单编码
			UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(
					formparams, "UTF-8");

			// 设置http请求参数
			httppost.setEntity(uefEntity);

			System.out
					.println("executing request " + httppost.getRequestLine());

			// 发送请求
			CloseableHttpResponse response = httpclient.execute(httppost);
			// 请求响应码
			int code = response.getStatusLine().getStatusCode();
			if (code == 200) {
				try {
					// 获取响应的数据
					HttpEntity entity = response.getEntity();

					if (entity != null) {
						String json = EntityUtils.toString(entity, "UTF-8");

						System.out.println("Response content: " + json);

						JSONArray jsonobj = JSONArray.fromObject(json);

						List<T> objList = (List<T>) JSONArray.toCollection(
								jsonobj, objectClass);
						if (objList != null && objList.size() > 0) {
							if (objList.size() <= 1) {
								obj = objList.get(0);
							}
						}
					}
				} finally {
					response.close();
				}
			} else {
				System.out.println("请求失败!");
			}
		} finally {
			httpclient.close();
		}
		return obj;
	}
}

package com.dw.util;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.dw.test.User;

public class HttpClientTest {
 private static HttpClientUtil<User> http = null;
 private static List<NameValuePair> formparams = null;

 @Before
 public void newUser() {
  http = new HttpClientUtil<User>();
  formparams = new ArrayList<NameValuePair>();
 }

 @After
 public void clerformparams() {
  formparams = null;
 }

 @Test
 public void postListTest() throws Exception {
  //请求参数
  formparams.add(new BasicNameValuePair("names", "邓文伟"));
  formparams.add(new BasicNameValuePair("password", "123"));

  List<User> listUser = http.getListPost(
    "http://localhost:8080/testPlatform/indexs.htm", User.class,
    formparams);
  System.out.println(listUser);
 }
 @Test
 public void postUserTest() throws Exception {
  //请求参数
  formparams.add(new BasicNameValuePair("names", "邓文伟"));
  formparams.add(new BasicNameValuePair("password", "123"));
  
  User user= http.getObjPost(
    "http://localhost:8080/testPlatform/indexs.htm", User.class,
    formparams);
  System.out.println(user.getUsername());
 }
}




代码和jar包:http://download.csdn.net/detail/dengwenwei121/8168261



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics