httpclient + TestNG 인터페이스 자동 테스트 제2 장
http://ip/server?method=getPlans&planDate=2014-08-25&cinemaId=101&uid=remote&enc=d0fe8420c641dd87d4165c09fe1d0c70&time_stamp=1408960607250
1. url 구축
1) 우선 매개 변수 쌍 구축
public static HashMap cinemas() {
HashMap params = new HashMap();
params.put("method", "getCinemas");
params.put("uid", StartTest.USERNAME);
return params;
}
2) 매개 변수 서명 을 포함 하 는 매개 변수 쌍 생 성
public static List getFormparams (HashMap params) {
List formparams = new ArrayList();
for (Entry e : params.entrySet()) {
formparams.add(new BasicNameValuePair(e.getKey(), e.getValue()));
}
formparams.add(new BasicNameValuePair("time_stamp", String.valueOf(new Date().getTime())));
formparams.add(new BasicNameValuePair("enc", GetENC.getEnc(formparams, StartTest.PASSWORD)));
return formparams;
}
3) 생 성 요청 URL
public static URI getUrl(List formparams, String HOST, String PATH) {
URI uri = null;
try {
uri = new URIBuilder().setScheme("http").setHost(HOST)
.setPath(PATH).setParameters(formparams).build();
} catch (URISyntaxException e) {
e.printStackTrace();
}
return uri;
}
2. URL 구축 후 요청 보 내기
public static HttpEntity getEntity(HashMap params, String HOST, String PATH) {
HttpEntity entity = null;
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
// httpget .
HttpGet httpget = new HttpGet(getUrl(getFormparams(params), HOST, PATH));
// get
CloseableHttpResponse response = httpclient.execute(httpget);
try {
// entity
entity = response.getEntity();
if (entity != null) {
entity = new BufferedHttpEntity(entity);
if(StartTest.log) {
ResultsLog.writefile(EntityUtils.toString(entity, "UTF-8"), StartTest.path);
}
}
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return entity;
}
3. 대상 JSON 데 이 터 를 분석 하고 대상 배열 로 돌아 가기
public static String[] targetArray(String sourcejson, String targetfield) {
String targetArray[] = null;
JSONObject js = JSONObject.fromObject(sourcejson);
if (sourcejson.contains("data")) {
JSONArray datajsonArray = js.getJSONArray("data");
targetArray = new String[datajsonArray.size()];
for(int i=0; i){
targetArray[i] = (JSONObject.fromObject(datajsonArray.getString(i))).getString(targetfield);
}
} else {
targetArray[0] = js.getString("errCode") + "----" + js.getString("errMsg");
}
return targetArray;
}
4. 요청 URL 을 실행 하고 JSON 데 이 터 를 분석 하여 대상 값 을 가 져 와 배열 을 구성 합 니 다.
public static String[] targetValueArray(HashMap params, String targetfield) {
String targetarray[] = null;
HttpEntity entity = GetPost.getEntity(params, StartTest.ROUND_HOST,
StartTest.ROUND_PATH);
try {
targetarray = JSONParsing.targetArray(
EntityUtils.toString(entity, "UTF-8"), targetfield);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return targetarray;
}
이로써 빌 드 URL - > get 요청 보 내기 -- > JSON 데이터 분석 으로 대상 값 가 져 오기 완료
다음으로 전송:https://www.cnblogs.com/mayibanjiah/p/4210863.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.