Secara umum, panggilan ke antarmuka eksternal tidak dapat dihindari selama pengembangan proyek. Artikel ini menjelaskan metode pemanggilan kelas HttpURLConnection di latar belakang java untuk mensimulasikan permintaan browser. Dapat digunakan untuk panggilan antarmuka. Bagikan dengan semua orang untuk referensi Anda. Metode implementasi spesifiknya adalah sebagai berikut:
Salin kode sebagai berikut: package com.cplatform.movie.back.test;
impor java.io.BufferedReader;
impor java.io.DataOutputStream;
impor java.io.InputStreamReader;
impor java.net.HttpURLConnection;
impor java.net.URL;
impor java.net.URLEncoder;
kelas publik HttpURLConnectionTest {
String akhir statis publik GET_URL = "http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
String akhir statis publik POST_URL = "http://112.4.27.9/mall-back/if_user/store_list";
/**
* Panggilan antarmuka GET
*/
kekosongan statis publik httpURLConectionGET() {
mencoba {
URL url = URL baru(GET_URL); // Ubah string menjadi alamat permintaan URL
Koneksi HttpURLConnection = (HttpURLConnection) url.openConnection();//Buka koneksi
connection.connect();//Sesi koneksi
// Dapatkan aliran masukan
BufferedReader br = BufferedReader baru(InputStreamReader baru(koneksi.getInputStream()));
garis senar;
StringBuilder sb = StringBuilder baru();
while ((line = br.readLine()) != null) {// Aliran pembacaan berulang
sb.tambahkan(baris);
}
br.close();//Tutup aliran
koneksi.putuskan(); // Putuskan sambungan
Sistem.keluar.println(sb.toString());
} tangkapan (Pengecualian e) {
e.printStackTrace();
System.out.println("Gagal!");
}
}
/**
* Antarmuka panggilan POST
*/
kekosongan statis publik httpURLConnectionPOST () {
mencoba {
URL url = URL baru(POST_URL);
//Memaksa koneksi urlConnection yang dikembalikan oleh metode terbuka ke koneksi HttpURLConnection (identifikasi koneksi objek jarak jauh yang direferensikan oleh url)
HttpURLConnection connection = (HttpURLConnection) url.openConnection();// Saat ini koneksi hanyalah objek koneksi, menunggu untuk dihubungkan
//Setel aliran keluaran koneksi ke benar, defaultnya adalah salah (permintaan posting secara implisit meneruskan parameter dalam bentuk aliran)
koneksi.setDoOutput(benar);
//Setel aliran input koneksi ke true
koneksi.setDoInput(benar);
//Setel metode permintaan untuk dikirim
koneksi.setRequestMethod("POST");
// cache permintaan posting disetel ke false
koneksi.setUseCaches(false);
//Setel apakah instance HttpURLConnection secara otomatis melakukan pengalihan
koneksi.setInstanceFollowRedirects(benar);
//Atur setiap atribut di header permintaan (berikut ini adalah jenis konten, atur ke parameter from yang dikodekan oleh urlEncoded)
// aplikasi/x-javascript text/xml->xml data application/x-javascript->json object application/x-www-form-urlencoded->form data
connection.setRequestProperty("Tipe Konten", "application/x-www-form-urlencoded");
// Membuat koneksi (permintaan tidak dimulai sampai metode connection.getInputStream() dipanggil. Pengaturan parameter di atas perlu dilakukan sebelum metode ini)
koneksi.koneksi();
//Membuat aliran masukan dan keluaran, digunakan untuk mengeluarkan parameter yang dibawa dalam koneksi, (konten keluaran adalah konten setelahnya?)
DataOutputStream dataout = DataOutputStream baru(koneksi.getOutputStream());
String parm = "storeId=" + URLEncoder.encode("32", "utf-8"); //URLEncoder.encode() metode mengkodekan string
// Parameter keluaran ke koneksi
dataout.writeBytes(parm);
// Segarkan dan tutup aliran setelah keluaran selesai
dataout.flush();
dataout.close(); // Langkah penting dan mudah diabaikan (tutup stream, ingat!)
System.out.println(koneksi.getResponseCode());
//Koneksi memulai permintaan dan memproses respons server (mendapatkan aliran input dari koneksi dan membungkusnya sebagai bufferedReader)
BufferedReader bf = BufferedReader baru(InputStreamReader baru(koneksi.getInputStream()));
garis senar;
StringBuilder sb = new StringBuilder(); // Digunakan untuk menyimpan data respon
// Membaca aliran dalam satu lingkaran, jika tidak mencapai akhir
while ((baris = bf.readLine()) != null) {
sb.append(bf.readLine());
}
bf.close(); // Langkah penting dan mudah diabaikan (tutup stream, ingat!)
connection.disconnect(); // Hancurkan koneksi
Sistem.keluar.println(sb.toString());
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// httpURLKoneksiGET();
httpURLConnectionPOST();
}
}
Saya harap artikel ini bermanfaat untuk pemrograman Java semua orang.