Apa pustaka Java terbaik yang digunakan untuk HTTP POST, GET, dll. Dalam hal kinerja, stabilitas, kematangan, dll.? Apakah ada satu perpustakaan tertentu yang digunakan lebih dari yang lain?
Persyaratan saya adalah mengirimkan permintaan HTTPS POST ke server jauh. Saya telah menggunakan paket java.net. * Di masa lalu serta paket org.apache.commons.httpclient. *. Keduanya telah menyelesaikan pekerjaan, tetapi saya ingin beberapa pendapat / rekomendasi Anda.
Saya akan merekomendasikan Apache HttpComponents HttpClient , penerus Commons HttpClient
Saya juga merekomendasikan untuk melihat HtmlUnit. HtmlUnit adalah "browser tanpa GUI untuk program Java". http://htmlunit.sourceforge.net/
sumber
Saya agak menyukai Jersey . Kami menggunakan 1,10 di semua proyek kami dan tidak mengalami masalah yang tidak dapat kami selesaikan.
Beberapa alasan mengapa saya menyukainya:
Sebenarnya, HTTPClient dan Jersey sangat mirip dalam implementasi dan API. Ada juga ekstensi untuk Jersey yang memungkinkannya mendukung HTTPClient.
Beberapa contoh kode dengan Jersey 1.x: https://blogs.oracle.com/enterprisetechtips/entry/consuming_restful_web_services_with
http://www.mkyong.com/webservices/jax-rs/restful-java-client-with-jersey-client/
HTTPClient dengan Jersey Client: https://blogs.oracle.com/PavelBucek/entry/jersey_client_apache_http_client
sumber
Saya setuju httpclient adalah sesuatu yang standar - tetapi saya rasa Anda sedang mencari opsi jadi ...
Restlet menyediakan klien http yang dirancang khusus untuk berinteraksi dengan layanan web Restful.
Kode contoh:
Client client = new Client(Protocol.HTTP); Request r = new Request(); r.setResourceRef("http://127.0.0.1:8182/sample"); r.setMethod(Method.GET); r.getClientInfo().getAcceptedMediaTypes().add(new Preference<MediaType>(MediaType.TEXT_XML)); client.handle(r).getEntity().write(System.out);
Lihat http://www.restlet.org/ untuk lebih jelasnya
sumber
Saya ingin menyebutkan Perpustakaan Klien Ning Async Http . Saya tidak pernah menggunakannya tetapi kolega saya memuji-muji itu dibandingkan dengan Apache Http Client, yang selalu saya gunakan di masa lalu. Saya sangat tertarik untuk mempelajarinya berdasarkan Netty , kerangka kerja i / o asinkron berkinerja tinggi, yang dengannya saya lebih mengenal dan menjunjung tinggi.
sumber
Bolehkah saya merekomendasikan Anda jagung-httpclient . Sederhana, cepat dan cukup untuk banyak kasus.
HttpForm form = new HttpForm(new URI("http://localhost:8080/test/formtest.jsp")); //Authentication form.setCredentials("user1", "password"); form.putFieldValue("input1", "your value"); HttpResponse response = form.doPost(); assertFalse(response.hasError()); assertNotNull(response.getData()); assertTrue(response.getData().contains("received " + val));
ketergantungan maven
<dependency> <groupId>net.sf.corn</groupId> <artifactId>corn-httpclient</artifactId> <version>1.0.0</version> </dependency>
sumber
Klien Google HTTP Java terlihat bagus bagi saya karena dapat berjalan di Android dan App Engine juga.
sumber