1 import net.sf.json.JSONArray; 2 import net.sf.json.JSONObject; 3 import org.apache.http.client.config.RequestConfig; 4 import org.apache.http.client.methods.CloseableHttpResponse; 5 import org.apache.http.client.methods.HttpGet; 6 import org.apache.http.client.utils.URIBuilder; 7 import org.apache.http.impl.client.CloseableHttpClient; 8 import org.apache.http.impl.client.HttpClients; 9 import org.apache.http.util.EntityUtils; 10 import org.testng.Assert; 11 import org.testng.annotations.AfterClass; 12 import org.testng.annotations.BeforeClass; 13 import org.testng.annotations.DataProvider; 14 import org.testng.annotations.Test; 15 16 import java.io.IOException; 17 import java.net.URI; 18 import java.net.URISyntaxException; 19 20 /** 21 * Created by zhangbin on 16/4/26. 22 * 接口链接:http://gateway.zitech.com/gw/oauthentry/study.scene/1.0/getbysid?" 参数access_token,subject_id 23 * asset过程中出现字符类型不同问题,字符类型必须相同才能进行asset 24 */ 25 public class HttpGetTest { 26 27 28 @BeforeClass 29 public void beforeClass(){ 30 System.out.println("=======This is BeforeClass======="); 31 } 32 33 @DataProvider(name="user") 34 public Object [][] Users(){ 35 return new Object[][]{ 36 {"bb801ee6b9983c7f893473fd6a313ad2","1","0"}, 37 {"bb801ee6b9983c7f893473fd6a313ad2","1,2","5008"}, 38 {"bb801ee6b9983c7f893473fd6a313ad2","123","0"}, 39 {"bb801ee6b9983c7f893473fd6a313ad2","","5008"} 40 }; 41 42 } 43 44 @Test(dataProvider="user") 45 public void getUri(String access_token,String subject_id,String hcode) throws URISyntaxException, IOException { 46 /** 47 * 拼接接口链接 48 */ 49 URI uri = new URIBuilder() 50 .setScheme("http") 51 .setHost("gateway.zitech.com/gw/oauthentry") 52 .setPath("/study.scene/1.0/getbysid") 53 .setParameter("access_token",access_token) 54 .setParameter("subject_id",subject_id) 55 .build(); 56 System.out.println(uri); 57 /** 58 * 创建httpclient 59 */ 60 CloseableHttpClient httpClient = HttpClients.createDefault(); 61 HttpGet httpGet = new HttpGet(uri); 62 /** 63 * 设置超时时间 64 */ 65 RequestConfig requestConfig = RequestConfig.custom() 66 .setSocketTimeout(2000) 67 .setConnectionRequestTimeout(2000) 68 .build(); 69 httpGet.setConfig(requestConfig); 70 71 CloseableHttpResponse response = httpClient.execute(httpGet); 72 System.out.println("响应码:" + response.getStatusLine().getStatusCode()); 73 /** 74 * 获取服务器响应内容 75 */ 76 String returnStr = EntityUtils.toString(response.getEntity()); 77 // System.out.println("响应内容:" + returnStr); 78 79 /** 80 * 解析json 81 */ 82 JSONObject jsonObject = JSONObject.fromObject(returnStr); 83 // System.out.println(jsonObject.has("message")); 84 // System.out.println(jsonObject.getString("message")); 85 String code = jsonObject.getString("code"); 86 String message = jsonObject.getString("message"); 87 /** 88 * 进行结果验证 89 * 注意asset对象字符类型,此处全为String类型 90 */ 91 if (jsonObject.get("data") !=null && code.equals("0")){ 92 93 JSONArray array = jsonObject.getJSONArray("data"); 94 if (array.size() > 0){ 95 JSONObject data = array.getJSONObject(0); 96 String su_id = data.getString("subjectId"); 97 System.out.println("subjectId:" + su_id); 98 Assert.assertEquals(subject_id,su_id); 99 100 }else { 101 Assert.assertEquals(hcode,code); 102 System.out.println(code); 103 } 104 } 105 else { 106 Assert.assertEquals(hcode,code); 107 } 108 System.out.println("message:" + message); 109 110 } 111 112 @AfterClass 113 public void afterClass(){ 114 System.out.println("This is afterClass"); 115 } 116 117 118 119 }