httpClientを使用したインタフェーステスト
5259 ワード
概要
現在、多くのWebアプリケーション開発はバックグラウンドに分かれており、バックグラウンド開発はインタフェースを提供してJsonオブジェクトを呼び出し、フロントはJSフレームワークを使用してバックグラウンドから戻ってきたJsonをロードする.本稿では、このようなバックグラウンドインタフェースをHttpClientでテストする方法を例に簡単に述べる.
Jsonオブジェクトを扱う基本API
JSONパッケージで最もよく使われる2つのクラスはJSOnObjectとJSOnArrayです.具体的にはJSON for java入門まとめを参照してください.
以下は自分で真似した簡単な例です.
実行結果は次のとおりです.
上記の例から見た基本的な事実は、文字列によってJSOONObject を直接構築できます. JSONObjectのkeyは明示的に伝わるときは単一引用符で包まれていますが、印刷されるときは依然として私たちが望んでいる二重引用符 です.
httpclient処理APIを使用して返す
次の例では、httpClientを使用してAPIから返されるJSON文字列を取得し、処理する方法を示します.
実行結果は次のとおりです.
まとめ: APIを介して返されるJSON文字列は、JSONオブジェクト を直接構築する JSONObject内部データを読み出すには、事前にオブジェクトの構造を知る必要があるため、上記の処理方法は汎用性がなく、特定の戻り のみを処理することができる.
補足学習:http://cgs1999.iteye.com/blog/1608003 http://cgs1999.iteye.com/blog/1609756
オリジナル文章、転載は出典を明記してください、原文の住所:httpClientを使用したインタフェーステスト
現在、多くのWebアプリケーション開発はバックグラウンドに分かれており、バックグラウンド開発はインタフェースを提供してJsonオブジェクトを呼び出し、フロントはJSフレームワークを使用してバックグラウンドから戻ってきたJsonをロードする.本稿では、このようなバックグラウンドインタフェースをHttpClientでテストする方法を例に簡単に述べる.
Jsonオブジェクトを扱う基本API
JSONパッケージで最もよく使われる2つのクラスはJSOnObjectとJSOnArrayです.具体的にはJSON for java入門まとめを参照してください.
以下は自分で真似した簡単な例です.
package com.james.json;
import org.json.JSONArray;
import org.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
// Test JSONObject.
JSONObject jsonobj = new JSONObject("{'name':'jingshou','age':30}");
String name = jsonobj.getString("name");
int age = jsonobj.getInt("age");
System.out.println(jsonobj.toString());
System.out.println(name+":"+age);
System.out.println("**********");
// Test JSONArray.
JSONArray jsonarray = new JSONArray("[{'name':'jingshou','age':30},{'name':'xiaohong','age':29}]");
for(int i=0;i<jsonarray.length();i++){
JSONObject jo = jsonarray.getJSONObject(i);
System.out.println(jo);
String name1 = jo.getString("name");
int age1 = jo.getInt("age");
System.out.println("name1= "+name1);
System.out.println("age1= "+age1);
}
}
}
実行結果は次のとおりです.
{"age":30,"name":"jingshou"}
jingshou:30
**********
{"age":30,"name":"jingshou"}
name1= jingshou
age1= 30
{"age":29,"name":"xiaohong"}
name1= xiaohong
age1= 29
上記の例から見た基本的な事実は、
httpclient処理APIを使用して返す
次の例では、httpClientを使用してAPIから返されるJSON文字列を取得し、処理する方法を示します.
package com.james.json;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
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;
import org.json.JSONArray;
import org.json.JSONObject;
public class SimpleServiceTest {
public static void main(String[] args) throws ClientProtocolException, IOException {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://jingshou.com/admin/searchUser.action?search_loginid=jingshou");
CloseableHttpResponse response = httpclient.execute(httppost);
try {
HttpEntity myEntity = response.getEntity();
System.out.println(myEntity.getContentType());
System.out.println(myEntity.getContentLength());
String resString = EntityUtils.toString(myEntity);
// JSONObject
JSONObject jsonobj = new JSONObject(resString);
System.out.println(jsonobj.toString());
// "resultSize "
int resutltSize = jsonobj.getInt("resultSize");
System.out.println("Search Results Size is: "+ resutltSize);
// "clients" , JSONArray
JSONArray jsonarray = jsonobj.getJSONArray("clients");
System.out.println(jsonarray.toString());
} finally {
response.close();
}
}
}
実行結果は次のとおりです.
Content-Type: text/plain; charset=UTF-8
-1
{"resultSize":1,"clients":[{"expirationDate":0,"reqStatus":0,"mostRecentActivity":1388376890000,"clientName":"Jingshou Li","company":"Pending","internal":true,"clientId":"jingshou","salesNames":"","disabled":false}]}
Search Results Size is: 1
[{"expirationDate":0,"reqStatus":0,"mostRecentActivity":1388376890000,"clientName":"Jingshou Li","company":"Pending","internal":true,"clientId":"jingshou","salesNames":"","disabled":false}]
まとめ:
補足学習:
オリジナル文章、転載は出典を明記してください、原文の住所:httpClientを使用したインタフェーステスト