1 단계 : 이 기사에 표시된대로 인터페이스 "National Weather Pregast Interface"를 선택하십시오. Aggregate Data URL : http://www.juhe.cn/docs/api/id/39/aid/87
STEP2 : 각 인터페이스는 사용자의 토큰에 해당하는 매개 변수 키를 전달해야하므로 첫 번째 단계는 키를 신청해야합니다.
3 단계 : Java를 연구 한 학생들은 수업이나 방법의 의도와 아이디어를 이해하지 못할 때 문서를 확인할 수 있다는 것을 알고 있습니다. 다행스럽게도 영어에 특히 좋지 않은 학생들에게는 Aggregation 웹 사이트의 문서는 모두 중국어 버전으로 사용되며 Java 소스 코드에서 영어 문서를 읽는 것보다 훨씬 쉽습니다. 전국 일기 예보 인터페이스에는 6 개의 하위 인터페이스가 있습니다. 첫 번째 인터페이스 링크를 열고 문서를보고 도시 이름이나 도시 ID 매개 변수를 전달해야한다는 것을 찾으십시오. 이 매개 변수는 여섯 번째 하위 인터페이스를 통해 얻을 수 있습니다 (인터페이스 간의 호출은 Java의 메소드 간의 통화와 유사합니다), 즉 도시 목록의 획득이 지원됩니다. 예에서는이 인터페이스를 먼저 호출합니다. 인터페이스를 호출하려면 네트워크 리소스 요청 문제가 포함됩니다. 여기서는 Get and Post의 두 가지 방법을 포함하여 도구 클래스를 캡슐화합니다.
4 단계 : 코드는 다음과 같습니다.
Demo1 : 네트워크 액세스 도구 클래스 (Get and Post 메소드 캡슐화)
패키지 Juheapi; import java.io.bufferedReader; import java.io.bufferedWriter; import java.io.inputStream; import java.io.inputStreamReader; import java.io.outputStreamWriter; import java.net.httpurlConnection; import java.net.net.url; 도구 클래스* @author silk*/public class purenetutil {/*** 메소드 가져 오기 게시물을 직접 호출하십시오. } /*** 네트워크 리소스를 얻기 위해 게시물 메소드를 설정합니다. 매개 변수가 null 인 경우 실제로 get 메소드* @param url 네트워크 주소* @param param 요청 매개 변수 키-값 쌍 쌍* @return return data*/ public static string post (String URL, Map Param) {httpurlConnection conn = null; {url u = new URL (url); conn = (httpurlConnection) u.openConnection (); StringBuffer sb = null; if (param! = null) {// 요청 매개 변수가 비어 있지 않은 경우 sb = new StringBuffer (); /*URL 연결은 입력 및/또는 출력에 사용할 수 있습니다. 출력에 URL 연결을 사용하려면 Dooutput * 플래그를 true로 설정하십시오. 기본값은 false입니다.*/// 기본값은 False입니다. Post 메소드는 매개 변수를 작성하고 true conn.setdooutput (true)을 설정해야합니다. // post 메소드를 설정하고, 기본값 get conn.setRequestMethod ( "post"); // 출력 스트림을 가져옵니다. 출력 스트림 out = conn.getOutputStream (); // 출력 스트림을 Advanced Output Stream BufferedWriter로 캡슐화합니다. Writer = New BufferedWriter (New OutputStreamWriter (Out)); // 매개 변수를 (Map.Entry s : param.entryset ()) {sb.append (s.getKey ()). Append ( "="). Append (s.getValue ()). Append ( "&"); } // 출력 스트림을 통해 writer.write (sb.deletecharat (sb.toString (). length () -1) .toString ()); writer.close (); // 닫아야합니다. 그렇지 않으면 불완전한 매개 변수에 오류가있을 수 있습니다. sb = null; } connect (); // 연결 make sb = new StringBuffer (); // 연결 상태 코드를 가져옵니다 int recode = conn.getResponseCode (); bufferedReader reader = null; if (recode == 200) {//이 오픈 연결에서 읽는 입력 스트림을 반환합니다. // 연결 입력 스트림에서 입력 스트림을 가져옵니다. in = conn.getInputStream (); // 입력 스트림 획득 캡슐화 reader = new BufferedReader (infinputStreamReader (in)); 문자열 str = null; sb = new StringBuffer (); // 입력 스트림에서 데이터를 읽습니다. } // 입력 스트림 reader.close ()를 닫습니다. if (sb.toString (). length () == 0) {return null; } return sb.toString (). substring (0, sb.toString (). length () - System.GetProperty ( "line.separator"). length ()); }} catch (예외 e) {e.printstacktrace (); 널 리턴; } 마침내 {if (conn! = null) // 연결을 닫습니다. conn.disconnect (); } return null; }} Demo2 : City List 인터페이스 예제를 얻으려면 전화하십시오
package juheAPI;import net.sf.json.JSONArray;import net.sf.json.JSONObject;/** * Get the city list* Example of calling JAVA in the national weather forecast interface* dtype string N Return data format: json or xml, default json * key string Y The key you applied for * @author silk * */public class GetCityList { /** * Call to get the city list 인터페이스, 모든 데이터를 반환*@return return interface data*/public static string excute () {String url = "http://v.juhe.cn/weather/citys?key=***a7558b2e0bedaa19673f74a6809ce"; // 인터페이스 url // purenetututil은 explates and post alternate and post work exaperates and post work work interfore work interfore rate get and post work interface rate gets and post classe입니다. PURENETUTIL.GET (url); // get get}/** * 인터페이스를 호출하여 데이터를 반환하고 데이터를 반환하고 입력 도시 이름 * @Param CityName CityName City Name * @return을 기준으로 해당 ID를 가져온 후 해당 ID */public static string getIdbycityName (string cityName) {string forcute result (); // recult and get the recult and get the inter recult and get the recult = if (result! = null) {jsonobject obj = jsonobject.fromobject (result); 결과 = obj.getString ( "resultCode"); // 반환 상태 코드를 가져옵니다. for (object o : arr) {// arr arr // 배열에서 json 숫자 문자열을 구문 분석 obj = jsonobject.fromobject (o.tostring ()); /*이시기에 Obj는 { "id": "2", "province": "Beijing", "City": "Beijing", "District": "Haidian"}*// 핵심 도시를 기반으로 판단을 위해 찾아야 할 기록 = Obj.getString ( "District"); // Suzhou City 입력과 같은 입력 도시의 불완전한 이름을 Suzhou와 같은 불완전한 이름을 방지합니다. (result.equals (cityName) || result.contains (cityName)) {result = obj.getString ( "id"); // id return result; }}}} 반환 결과; } public static void main (string [] args) {System.out.println (getIdbyCityName ( "Hong Kong")); }} Demo3 : 도시 이름/ID를 기준으로 날씨를 확인하려면 전화
패키지 Juheapi; import net.sf.json.jsonobject; /** * 도시 이름/id * @Author Silk */Public Class WeatherReportBycity {/** * get */param cityName * @return */public static string excute (String CityName) {String URL = // 여기에 JSON 형식 데이터 예제, so format = 2입니다. 도시 이름을 예로 들어, CityName은 중국어 "http://v.juhehe.cn/weather/index?cityname="+cityname+"&key=***a7558b2e0bedaa19673f74a6809ce로 전달됩니다. return purenetutil.get (url); // 도구 클래스를 통해 반환 데이터 가져 오기}/*** 반환 된 데이터에서 속성의 예를 얻으십시오. 오늘의 온도* "온도"를 얻는 샘플은 다음과 같습니다. "8 ℃ ~ 20 ℃"오늘 온도*/public static string gettodaytemperbycity (string gettodaytemperbycity) {string result = excute (city); if (result! = null) {jsonobject obj = jsonobject.fromobject (result); /*반환 상태 코드 가져옵니다*/ result = obj.getString ( "resultCode"); /*상태 코드가 200 인 경우 데이터가 성공적으로 반환되었음을 의미합니다*/ if (result! = null && result.equals ( "200")) {result = obj.getString ( "result"); // 현재 결과에는 데이터에 여러 키가 있으며 키를 통과하여 속성 OBJ = jsonObject.fromObject (result)를 얻을 수 있습니다. // 오늘 온도에 해당하는 키는 오늘입니다. 결과 = obj.getString ( "오늘"); obj = jsonobject.fromobject (결과); // 오늘 온도의 해당 키는 온도 결과 = obj.getString ( "온도")입니다. 반환 결과; }} 반환 결과; } public static void main (string [] args) {System.out.println (getTodayTemperatureByCity ( "suzhou")); }} DEMO4 : 호출 날씨 유형 및 표현 목록 인터페이스의 예제
패키지 juheapi; import net.sf.json.jsonarray; import net.sf.json.jsonobject;/*** 날씨 유형 및 식별 목록 인터페이스에 대한 Java를 호출하는 예* @author silk*/public class getweathersignandtypelist {// interface 주소 {// interface 주소. "http://v.juhe.cn/weather/weather/Uni?key=Poy=FeekINKINKINKINKINKINKINKINKIENKINKIENKINKINKIGNIA7558B2E0BEDAA19673F74A6809CE"; /*** 도구 클래스* @return*/public static string gutr () {return purenetutil.get (url); // 인터페이스 데이터를 얻기 위해 도구 클래스를 호출}/*** @param wid 날씨에 해당하는 id* @return weather name*/public static string getweatherbywid (string wid) {string result = excute (); obj = jsonobject.fromobject (결과); 결과 = obj.getString ( "resultCode"); /*반환 상태 코드 가져 오기*/ if (result! = null && result.equals ( "200")) {/*배열 데이터 가져옵니다*/ result = obj.getString ( "result"); jsonarray arr = jsonarray.fromobject (결과); for (object o : arr) {// tranquility array obj = jsonobject.fromobject (o.tostring ()); // 필요한 데이터를 가로 지르고 결과를 직접 반환하면 키 (wid)를 기반으로 값을 얻으려면 (obj.getString ( "wid"). equals (wid (wid)) {result = obj.getstring ( "Weather"); 반환 결과; }}}} 반환 결과; } public static void main (String [] args) {System.out.println (getweatherbyWid ( "10")); }}5 단계 : 인터페이스를 호출 할 때 상태 코드가 200이 아닌 경우 문서 지침을주의 깊게 참조하십시오. 즉, 단계 3 : 문서를 읽으십시오!
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.