随笔1

 1 import com.alibaba.fastjson.JSON;
 2 import com.alibaba.fastjson.JSONObject;
 3 import com.qa.base.TestBase;
 4 import com.qa.util.RestClient;
 5 import com.qa.util.JsonUtil;
 6 import org.apache.http.client.methods.CloseableHttpResponse;
 7 import org.apache.http.util.EntityUtils;
 8 import org.testng.Assert;
 9 import org.testng.annotations.BeforeClass;
10 import org.testng.annotations.Test;
11 import java.io.IOException;
12 import java.util.*;
13 
14 
15 public class GetDemo extends TestBase {
16     TestBase testBase;
17     String host;
18     String url;
19     RestClient restClient;
20     CloseableHttpResponse closeableHttpResponse;
21 
22     @BeforeClass
23     public void setup() {
24         testBase = new TestBase();
25         host = prop.getProperty("GETPOST");
26         url = host + "api/users";
27     }
28 
29     //get方法带请求头
30     @Test(description = "get请求成功")
31     public void getAPITest() throws IOException {
32         restClient = new RestClient();
33         restClient.get(url);
34         HashMap<String, String> hashMap = new HashMap<String, String>();
35         hashMap.put("Content-Type", "application/json");
36         closeableHttpResponse = restClient.get(url, hashMap);
37         //断言状态码
38         int statusCode = closeableHttpResponse.getStatusLine().getStatusCode();
39         System.out.println(statusCode);
40         Assert.assertEquals(statusCode, RESPNSE_STATUS_CODE_200, "状态码不是200");
41         //把响应内容存储在字符串对象
42         String responseString = EntityUtils.toString(closeableHttpResponse.getEntity(), "UTF-8");
43         //System.out.println(responseString);
44         JSONObject responseJson = JSON.parseObject(responseString);
45         //json内容解析
46         String s = JsonUtil.getValueByJPath(responseJson, "data[0]/first_name");
47         //断言第一个名字是否是"George"
48         Assert.assertEquals(s, "George", "fiset_name is not George");
49     }
50 
51 }
 //把响应内容存储在字符串对象
//得到相应报文的字符集
String responseString = EntityUtils.toString(closeableHttpResponse.getEntity(), "UTF-8");
 1 CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
 2             if(httpResponse.getStatusLine().getStatusCode() == 200) {
 3                 //网站转为String
 4                 String get_Charset_Entity2String = EntityUtils.toString(httpResponse.getEntity());
 5                 //解析
 6                 Document get_Charset_Document = Jsoup.parse(get_Charset_Entity2String);
 7                 //字符集信息提取,51job和猎聘
 8                 String charset = get_Charset_Document.select("meta[http-equiv=Content-Type]")
 9                         .attr("content").split("=")[1];
10                 System.out.println(charset);
11                 //根据字符集重新编码成正确的
12                 String Ori_Entity = EntityUtils.toString(httpResponse.getEntity(),charset);
13                 //转换为统一的utf-8
14                 String entity = new String(Ori_Entity.getBytes(),"utf-8");
15                 System.out.println(entity);        {

 

//字符串对象转换成json对象,以便取值
JSONObject responseJson = JSON.parseObject(responseString);
 1 //举例 result为
 2 {
 3  
 4     "success":"true",
 5  
 6     "returnAddress":"123"
 7  
 8 }
 9    JSONObject jsonObject=JSON.parseObject(result);      //转换成object
10  
11    jsonObject.getString("returnAddress")    //获取object中returnAddress字段值123;       

 

posted @ 2021-06-29 15:46  左铭右想  阅读(34)  评论(0编辑  收藏  举报