JAva要求URLはJSONに戻る
必要: testCaseローカルurlにアクセスし、urlを返すjsonデータ を取得する
1、urlパス、例えばアクセスhttp://localhost:8080/spb/result
コントローラは次のとおりです.
プロジェクトアクセスurlを実行するには、次のようにします.
ではtestCaseでこのurlパスにどのようにアクセスしてjsonデータを取得しますか?次のように
実行効果:
まちがいやすい点に注意する testCaseを実行する前に、サーバが起動するかどうかを確認する必要があります(tomcatが起動しているかどうか)、起動していない場合はjsonデータ が取得できません. urlに接続できない場合は、tomcatのポートと同じ にアクセスするポートがあるかどうかを確認します.
1、urlパス、例えばアクセスhttp://localhost:8080/spb/result
コントローラは次のとおりです.
@RestController
@RequestMapping("/spb")
public class JsonController extends MainController {
private static final Logger logger = LoggerFactory.getLogger(JsonController.class);
@RequestMapping("/result")
public String resultJson() {
return "{\"name\": \" \",\"age\": 14,\"gender\": true,\"height\": 1.65,\"grade\": null,\"middle-school\": \"\\\"W3C\\\" Middle School\",\"skills\": [\"JavaScript\",\"Java\",\"Python\",\"Lisp\"]}";
}
プロジェクトアクセスurlを実行するには、次のようにします.
ではtestCaseでこのurlパスにどのようにアクセスしてjsonデータを取得しますか?次のように
@Test
public void testJsonResult() throws IOException {
URL connect = isConnect("http://localhost:8080/spb/result");
if (null != connect){
String json = loadJson(connect.toString());
System.out.println(json);
}
}
public synchronized URL isConnect(String urlStr) {
URL url = null;
HttpURLConnection connection = null;
int counts = 0;
if (urlStr == null || urlStr.length() <= 0) {
return null;
}
while (counts < 5) {
try {
url = new URL(urlStr);
connection = (HttpURLConnection) url.openConnection();
int code = connection.getResponseCode();
System.out.println(counts +" = "+code);
if (code == 200) {
System.out.println("URL !");
}
break;
} catch (Exception ex) {
counts++;
System.out.println("URL , " + counts +" ");
urlStr = null;
continue;
}
}
return url;
}
public static String loadJson(String url) {
StringBuilder json = new StringBuilder();
try {
URL urlObject = new URL(url);
URLConnection uc = urlObject.openConnection();
// utf-8
BufferedReader in = new BufferedReader(new InputStreamReader(uc
.getInputStream(), "utf-8"));
String inputLine = null;
while ((inputLine = in.readLine()) != null) {
json.append(inputLine);
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return json.toString();
}
実行効果:
まちがいやすい点に注意する