Langkah1: Pilih antarmuka "Antarmuka Perkiraan Cuaca Nasional" seperti yang ditunjukkan dalam artikel ini. URL data agregat: http://www.juhe.cn/docs/api/id/39/aid/87
Langkah2: Setiap antarmuka perlu melewati kunci parameter, yang setara dengan token pengguna, jadi langkah pertama yang Anda butuhkan untuk mengajukan kunci.
Langkah3: Siswa yang telah mempelajari Java tahu bahwa ketika kita tidak memahami niat dan ide -ide kelas atau metode, kita dapat memeriksa dokumen, dan ini tidak terkecuali. Untungnya bagi siswa yang tidak terlalu baik dalam bahasa Inggris, dokumen -dokumen di situs web agregasi semuanya dalam versi Cina, yang seharusnya jauh lebih mudah daripada membaca dokumen bahasa Inggris dalam kode sumber Java. Ada enam sub-antarmuka di bawah antarmuka perkiraan cuaca nasional. Buka tautan antarmuka pertama dan lihat dokumen dan temukan bahwa Anda perlu melewati nama kota atau parameter ID kota. Parameter ini dapat diperoleh melalui sub-antarmuka keenam (panggilan antara antarmuka mirip dengan panggilan antara metode di Java), yaitu, akuisisi daftar kota didukung. Jadi dalam contoh, kami menyebut antarmuka ini terlebih dahulu. Memanggil antarmuka melibatkan masalah meminta sumber daya jaringan. Di sini saya merangkum kelas alat, termasuk dua metode: dapatkan dan posting.
Langkah4: Kode ini adalah sebagai berikut:
Demo1: Kelas Alat Akses Jaringan (Encapsulate Get and Posting Metode)
Paket JuheAPI; impor java.io.bufferedReader; impor java.io.bufferedwriter; impor java.io.inputstream; impor java.io.inputStreamreader; impor java.OutputStreamwriter; impor java.net.htpurlconnection; Impor; Kelas Alat Akses Jaringan* @Author Silk**/kelas publik PURENETUTIL {/*** Dapatkan metode secara langsung memanggil metode posting* @param URL Alamat jaringan* @Return kembali data jaringan*/string statis publik get (string url) {return pos (url, null); } /*** Atur metode pos untuk mendapatkan sumber daya jaringan. Jika parameternya nol, sebenarnya ditetapkan sebagai metode GET* @param URL Alamat Jaringan* @param Param Parameter Parameter Parameter Kunci Pasangan* @Return Return Data Baca*/ Posting String Statis Public (String URL, Param Peta) {httpUrlConnection conn = null; coba {url u = url baru (url); conn = (httpurlconnection) u.openconnection (); StringBuffer SB = null; if (param! = null) {// Jika parameter permintaan tidak kosong sb = stringBuffer baru (); /*Koneksi URL dapat digunakan untuk input dan/atau output. Atur flag dooutput * ke true jika Anda bermaksud menggunakan koneksi URL untuk output, * false jika tidak. Standarnya false.*/// default false. Metode POST perlu menulis parameter dan mengatur Conn.setDoOutput true (true); // atur metode pos, default get conn.setRequestMethod ("post"); // Dapatkan output stream outputStream out = conn.getoutputStream (); // Encapsulate aliran output ke dalam aliran output lanjutan BufferedWriter Writer = BufferedWriter baru (outputStreamWriter baru (out)); // Encapsulate parameter ke dalam pasangan nilai-kunci untuk (map.entry s: param.entryset ()) {sb.append (s.getKey ()). Append ("="). Append (s.getValue ()). Append ("&"); } // Tulis parameter melalui aliran output ke writer.write (sb.deleteCharat (sb.tostring (). Length ()-1) .toString ()); writer.close (); // Itu harus ditutup, jika tidak mungkin ada kesalahan dengan parameter yang tidak lengkap SB = null; } connect (); // buat koneksi sb = stringBuffer baru (); // Dapatkan kode status koneksi int recode = conn.getResponsecode (); BufferedReader Reader = null; if (recode == 200) {// Mengembalikan aliran input yang dibaca dari koneksi terbuka ini // Dapatkan aliran input dari inputStream inputStream in = conn.getInputStream (); // Encapsulate input Stream Reader = BufferedReader baru (InputStreamReader baru (IN)); String str = null; SB = StringBuffer baru (); // Baca data dari aliran input sementara ((str = reader.readline ())! = Null) {sb.append (str) .append (System.getProperty ("line.separator")); } // Tutup pembaca aliran input.close (); if (sb.toString (). length () == 0) {return null; } return sb.toString (). substring (0, sb.tostring (). length () - system.getProperty ("line.separator"). length ()); }} catch (Exception e) {e.printstacktrace (); kembali nol; } akhirnya {if (conn! = null) // tutup koneksi conn.disconnect (); } return null; }} Demo2: Panggilan untuk mendapatkan contoh antarmuka daftar kota
Paket JuheAPI; impor net.sf.json.jsonarray; impor net.sf.json.jsonobject;/** * Dapatkan daftar kota * Contoh panggilan java di antarmuka perkiraan cuaca nasional * dtype string yang Anda terapkan untuk * @aut format: json atau xml, default json * string kunci y kunci yang Anda terapkan untuk * @aut format * antarmuka, kembalikan semua data*@return kembali data antarmuka*/public static string excute () {string url = "http://v.JUHE.cn/weather/citys?key=******A7558B2E0 METODE POURING POURETICE IS PUPRETICE IS THE TOURD IS THE TOURD IS THE TOURD IS A TOURD IS THE TOURD IS A TOURD//POURENCE PureNetUtil.get(url);//Use get method} /** * After calling the interface to return the data, parse the data and get the corresponding ID based on the input city name * @param cityName CityName City name * @return Return the corresponding ID */ public static String getIDBycityName(String cityName) { String result=excute();//Return the interface result and get the json format data if (result! = null) {jsonObject obj = jsonobject.fromObject (hasil); result = obj.getString ("resultCode"); // Dapatkan kode status pengembalian jika (hasil! = null && result.equals ("200")) {// 200 menunjukkan hasil yang berhasil dari hasil data = obj.getString ("hasil"); // Dapatkan format json format array dari daftar kota jsonarray arr = jsonrrom. untuk (objek o: arr) {// transfer arr // parse string numerik json di array obj = jsonobject.fromObject (o.toString ()); /*Pada saat ini obj adalah {"id": "2", "provinsi": "Beijing", "City": "Beijing", "District": "Haidian"}*/// Catatan yang perlu ditemukan untuk penilaian berdasarkan Kota Kunci sebagai hasil petunjuk = obj.getString ("distrik"); // Cegah nama yang tidak lengkap dari kota input, seperti input Kota Suzhou sebagai Suzhou, mirip dengan kueri fuzzy jika (hasil. }}}} hasil pengembalian; } public static void main (String [] args) {System.out.println (getIdbyCityName ("Hong Kong")); }} Demo3: Hubungi untuk memeriksa cuaca berdasarkan nama/id kota
paket juheapi; impor net.sf.json.jsonobject; /** * Permintaan cuaca dengan nama kota/id * @author sutra * */kelas publik WeatherreportByCity {/** * dapatkan */param CityName * @return */Public Static String Excute (String CityName) {String url = // Berikut adalah contoh data format JSON, jadi format = 2. Mengambil nama kota sebagai contoh, CityName diteruskan ke Cina "http://v.juhe.cn/weather/index?cityname="+CityName+"&key=***TE7558B2E0Bedaa19673f74a6809ce"; return PureNetUtil.get(url);//Get return data through tool class} /** * Get an example of an attribute in the returned data, here is a sample of getting today's temperature* "temperature": "8℃~20℃" Today's temperature* @param args * @return */ public static String GetTodayTemperatureByCity(String city) { String result=excute(city); if (result! = null) {jsonObject obj = jsonobject.fromObject (hasil); /*Dapatkan kode status pengembalian*/ hasil = obj.getString ("resultCode"); /*Jika kode status 200, itu berarti bahwa data berhasil dikembalikan*/ if (hasil! = Null && result.equals ("200")) {hasil = obj.getString ("hasil"); // Pada saat ini, ada beberapa kunci dalam data dalam hasil, dan kunci dapat dilalui untuk mendapatkan atribut obj = jsonObject.fromObject (hasil); // Kunci yang sesuai dengan suhu hari ini adalah hari ini Hasil = obj.getString ("hari ini"); obj = jsonObject.fromObject (hasil); // Kunci yang sesuai dari suhu saat ini adalah hasil suhu = obj.getString ("suhu"); hasil pengembalian; }} hasil pengembalian; } public static void main (string [] args) {System.out.println (getTodayTemperatureByCity ("suzhou")); }} Demo4: Contoh Panggilan Jenis Cuaca dan Antarmuka Daftar Representasi
Paket JuheAPI; Impor net.sf.json.jsonarray; impor net.sf.json.jsonobject;/*** Contoh panggilan java untuk jenis cuaca dan antarmuka daftar identifikasi* @author sutra*/kelas publik getWeatherSignandTypelist {// alamat antarmuka, karena hanya kunci kunci yang perlu diteruskan sebagai parameter = a {// ATERFACE ALAMAT, karena hanya kunci yang harus ditetapkan untuk menjadi parameter, itu adalah Parameter = ADIA ITU ADALAH AKURNA, karena hanya KUNCI PRIONAL PARACTER PARAMETER PARAMETER, ADALAH PARTANCE, karena hanya KUNCI PLOIKLE PARAMETER PARAMETER, ADALAH PARTANT ADALAS "http://v.juhe.cn/weather/uni?key=***7558b2e0bedaa19673f74a6809ce"; /** * Get data through tool class* @return */ public static String exhaust(){ return PureNetUtil.get(URL);//Calling the tool class to get interface data} /** * Get * @param wid weather corresponding id * @return Weather name*/ public static String getWeatherByWid(String wid) { String result=excute();//Get interface data if(result!=null){ JSONObject obj = jsonObject.fromObject (hasil); result = obj.getString ("resultCode"); /*Dapatkan kode status pengembalian*/ if (hasil! = Null && result.equals ("200")) {/*Dapatkan data array*/ hasil = obj.getString ("hasil"); Jsonarray arr = jsonarray.fromObject (hasil); untuk (objek o: arr) {// array ketenangan obj = jsonobject.fromObject (o.toString ()); // Jika Anda melintasi data yang diperlukan dan mengembalikan hasilnya secara langsung, dapatkan nilai berdasarkan kunci (wid) untuk menentukan apakah itu sama dengan parameter yang diteruskan jika (obj.getString ("wid"). Sama (wid)) {hasil = obj.getString ("cuaca"); hasil pengembalian; }}}} hasil pengembalian; } public static void main (string [] args) {System.out.println (getWeatherByWid ("10")); }}Langkah5: Jika kode status tidak 200 saat memanggil antarmuka, silakan merujuk dengan cermat instruksi dokumen, yang berarti kembali ke Langkah3: Baca dokumen!
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.