Tinjauan Komunikasi HTTP
HTTP Communication memiliki dua cara untuk memposting dan mendapatkan. Yang pertama mengirimkan data ke server melalui entitas pesan HTTP, yang sangat aman dan tidak memiliki batasan pada ukuran transmisi data. Teks Namun, permintaan GET tidak siap -permintaan GET sebagian besar digunakan untuk menanyakan (sumber daya baca), yang efisien. Permintaan pos digunakan untuk operasi keamanan tinggi seperti pendaftaran dan login dan menulis data ke database.
Selain memposting dan mendapatkan, ada cara lain untuk berkomunikasi dengan HTTP! Silakan merujuk ke metode permintaan HTTP
Persiapan sebelum pengkodean
Sebelum pengkodean dilakukan, pertama -tama kami membuat servlet, yang menerima parameter klien (nama dan usia) dan menanggapi klien.
@WebServlet (urlpatterns = {"/demo.do"}) Demoservlet kelas publik memperluas httpservlet {prive static final long serversionuid = 1L; "); Response.setContentType (" Teks/html; charset = utf-8 "); name string = requestParameter (" name "); ge"); Layanan oleh Get. Melempar ServiceTexception, IoException F-8 "); response.setContentType (" Teks/html; charset = utf-8 "); name string = request. GetParameter (" name "); string usia = request.getParameter (" usia ") ; ;}}
Gunakan JDK untuk mengimplementasikan komunikasi HTTP
Gunakan UrlConnection untuk mengimplementasikan permintaan mendapatkan
Memeriksa objek java.net.url;
Dapatkan java.net.urlconnection melalui metode OpenConnection () dari objek URL;
Dapatkan aliran input melalui metode getInputStream () dari objek koneksi URLC;
Baca aliran input;
Sumber Daya Tutup.
Public void () melempar Exception {url url = URL baru ("http://127.0.0.1/http/demo.name=Jack&age=10"); New BufferedReader (InputStreamReader baru (urlConnection.getInputStream (), "UTF-8")); ) {sb.append (line + "/n");} system.out.println (sb.toString ());}
Gunakan httpurlconnection untuk mengimplementasikan permintaan pos
java.net.httpurlconnection adalah subkelas dari java.net.url, menyediakan lebih banyak operasi pada http (metode getxxx dan setxxx). Kelas ini mendefinisikan serangkaian kode status HTTP:
Public void () melempar ioException {url url = URL baru ("http: //127.0.0.1/http/demo.do"); setDoOnput (true); (httpurlconnection.getoutStream ())); Flush (); ) {// Baca data SB.Append (line + "/n");} system.out.println (sb.toString ());}
Gunakan httpclient untuk komunikasi http
HTTPClient sangat menyederhanakan implementasi komunikasi HTTP di JDK.
Ketergantungan Maven:
<dependency> <GroupId> org.apache.httpComponents </groupId> <ArTifactId> httpClient </artifactid> <version> 4.3.6 </version> </dependency>
Dapatkan permintaan
Public void httpClientGet () melempar Exception {// Buat objek httpClient httpclient client = httpclients.createdefault (); 40"); // Call the execute method of the HttpClient object to obtain the response HttpResponse response = client.execute(get); // Call HttpResponse The Getentity method of the SE object obtains the response entity HttpEntity httpEntity = response.getEntity( );
Permintaan Posting
public void httppClientPost () melempar Exception {// Buat objek httpClient httpClient client = httpclients.createdefault (); ; San ")); parameter.add (basicnamevaluePair baru (" usia "," 25 ")); // Tambahkan Pesan Entitas Pesan. dan mengubahnya menjadi string httpresponse response = client.execute (post); ;}
HTTPClient adalah sub-proyek di bawah Apache Jakarta Common untuk memberikan toolkit pemrograman klien yang efisien dan kaya fitur yang mendukung protokol HTTP, dan mendukung versi terbaru dan saran dari protokol HTTP. HTTPClient telah diterapkan pada banyak proyek, seperti dua proyek open source lainnya yang diketahui di Apache Jakarta Cactus dan htmlunit keduanya menggunakan httpclient.