ステップ1:この記事に示すように、インターフェイス「National Weather Forecast Interface」を選択します。集約データURL:http://www.juhe.cn/docs/api/id/39/aid/87
ステップ2:各インターフェイスは、ユーザーのトークンに相当するパラメーターキーを渡す必要があるため、キーを申請する必要がある最初のステップが必要です。
ステップ3: Javaを勉強した学生は、クラスや方法の意図とアイデアを理解していない場合、ドキュメントを確認できることを知っています。これも例外ではありません。幸いなことに、英語が特に良くない学生にとって、集約Webサイトのドキュメントはすべて中国語版であり、Javaソースコードの英語のドキュメントを読むよりもはるかに簡単なはずです。 National Weather Forecastインターフェイスの下には、6つのサブインターフェイスがあります。最初のインターフェイスリンクを開き、ドキュメントを見て、都市名または都市IDパラメーターを渡す必要があることがわかります。このパラメーターは、6番目のサブインターフェイスを介して取得できます(インターフェイス間の呼び出しは、Javaのメソッド間の呼び出しに類似しています)、つまり、都市リストの取得がサポートされています。したがって、この例では、最初にこのインターフェイスを呼び出します。インターフェイスを呼び出すには、ネットワークリソースを要求する問題が含まれます。ここでは、2つの方法を含むツールクラスをカプセル化します:取得と投稿。
ステップ4:コードは次のとおりです。
DEMO1:ネットワークアクセスツールクラス(Encapsulate get and post Method)
パッケージJuheapi; Import java.io.bufferedReader; Import Java.io.BufferedWriter; Import java.io.inputStream; Import java.io.inputStreamReader; Impont java.io.OutputStreamWriter; Import Java.net.net.httpurlconnection; Import Java.net.ur.ネットワークアクセスツールクラス* @Authorシルク**/パブリッククラスPureneTutil {/***メソッドを直接呼び出すメソッド* @Param URLネットワークアドレス* @return Return Network Data*/public Static String get(string url){return post(url、null); } /***ポストメソッドを設定して、ネットワークリソースを取得します。パラメーターがnullの場合、実際にはgetメソッドとして設定されます* @param urlネットワークアドレス* @param param request parameter parameter key-valueペア* @return return read data*/ public static string post(string url、map param){httpurlconnection conn = null; try {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メソッドを設定し、デフォルトを取得conn.setRequestMethod( "post"); //出力ストリームを取得しますoutputStream 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( "&"); } //出力ストリームを介してparametersをWrite.write(sb.deletecharat(sb.toString()。length() - 1).toString()); writer.close(); //閉じる必要があります。そうしないと、不完全なパラメーターsb = nullのエラーがある場合があります。 } connect(); //接続を作成sb = new stringbuffer(); //接続ステータスコードint recode = conn.getResponseCode()を取得します。 bufferedreader reader = null; if(recode == 200){//この開く接続から読み取る入力ストリームを返します//接続から入力ストリームを取得intuntStream in = conn.getInputStream(); //入力ストリームreader = new BufferedReader(new inputstreamReader(in))をカプセル化する;文字列str = null; sb = new StringBuffer(); //入力ストリームからデータを読み取りますhid((str = reader.readline())!= null){sb.append(str).append(system.getProperty( "line.separator")); } //入力ストリーム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(); nullを返します。 }最後に{if(conn!= null)//接続を閉じますconn.disconnect(); } nullを返します。 }} DEMO2:CHALL CITY List Interfaceの例を取得します
パッケージJuheapi; Import net.sf.json.jsonarray; Import net.sf.json.jsonobject;/** * cityリストを取得 *国家気象予測インターフェイスでJavaを呼び出す例 * DTYPE文字列n戻りデータ形式:JSONまたはXML、デフォルトJSON *キー文字列Yインターフェイス、すべてのデータを返します*@return return interface data*/public static string excute(){string url = "http://v.juhe.cn/weather/citys?key =****a7558b2e0bedaaa19673f74a6809ce"; Data Return PureneTutil.get(url); // get method}/** *インターフェイスを呼び出してデータを返し、入力都市名に基づいて対応するIDを取得した後 * @param cityName city name * @return返品if(result!= null){jsonobject obj = jsonobject.fromobject(result); result = obj.getString( "resultCode"); //返されるステータスコードを取得するif(result!= null && result.equals( "200")){// 200はデータの成功したリターン= obj.getString( "result"); for(object o:arr){// arr //配列でjson数値文字列を解析するobj = jsonobject.fromobject(o.tostring()); /*この時点で、objは{"id": "2"、 "県": "beijing"、 "city": "beijing"、 "地区": "haidian"}*///キーシティに基づく判断のために見つかる必要があるレコード= obj.getString( "district"); //ファジークエリif(result.equals(cityName)|| result.contains(cityName)){result = obj.getString( "id"); // id return result resultを取得するsuzhouとしての蘇州市の入力など、入力都市の不完全な名前を防止します。 }}}} return result; } public static void main(string [] args){system.out.println(getidbycityName( "hong Kong")); }} DEMO3:都市名/IDに基づいて天気を確認するために電話してください
パッケージJuheapi; net.sf.json.jsonobjectをインポートします。 /** * City Name/id * @Author Silk * */public class WeatherReportByCity {/** * get */param CityName * @return */public Static String excute(string cityName){String url = //これはJSON形式のデータ例です。都市名を例にとると、都市名は中国語に渡されます。 purenetutil.get(url); //ツールクラスを介して戻りデータを取得}/***返されたデータの属性の例を取得します。今日の温度を取得するサンプル* "温度": "8℃〜20℃"今日の温度* @param args* @return*/public static string gettodaytemperaturebycity(city){string citute); if(result!= null){jsonobject obj = jsonobject.fromobject(result); /*returnステータスコードを取得*/ result = obj.getString( "resultCode"); /*ステータスコードが200の場合、データが正常に返されることを意味します*/ if(result!= null && result.equals( "200")){result = obj.getString( "result"); //この時点で、結果のデータに複数のキーがあり、キーを通過して属性を取得することができますobj = jsonobject.fromobject(result); //今日の温度に対応するキーは、今日の結果= obj.getString( "today")です。 obj = jsonobject.fromobject(result); //今日の温度の対応するキーは温度結果= obj.getString( "温度")です。返品結果; }} return result; } 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 {//インターフェイスアドレス。 "http://v.juhe.cn/weather/uni?key=******************** /***ツールクラスを介してデータを取得* @return*/public static string exautor(){return pureneTutil.get(url); //インターフェイスデータを取得するためにツールクラスを呼び出す}/*** @param wid Weather-対応するID* @return name*/public static String getweatherbywid(string wid){interface datas( obj = jsonobject.fromobject(result); result = obj.getString( "resultCode"); /*returnステータスコードを取得*/ if(result!= null && result.equals( "200")){/*array data*/ result = obj.getString( "result"); jsonarray arr = jsonarray.fromobject(result); for(object o:arr){// tranquility array obj = jsonobject.fromobject(o.toString()); //必要なデータを通過して結果を直接返す場合、キー(wid)に基づいて値を取得して、渡されたパラメーターに等しいかどうかを判断します(obj.getString( "wid")。返品結果; }}}} return result; } public static void main(string [] args){system.out.println(getWeatherByWid( "10")); }}ステップ5:インターフェイスを呼び出すときにステータスコードが200でない場合は、ドキュメントの指示を注意深く参照してください。つまり、ステップ3に戻ることを意味します。ドキュメントをお読みください!
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。