Bagaimana cara membuat URL atau URI di Java? Adakah cara idiomatik, atau perpustakaan yang dengan mudah melakukan ini?
Saya perlu mengizinkan mulai dari string permintaan, mengurai / mengubah berbagai bagian URL (skema, host, jalur, string kueri) dan mendukung penambahan dan pengkodean parameter kueri secara otomatis.
Jawaban:
Pada Apache HTTP Component HttpClient 4.1.3, dari tutorial resmi :
Edit: sejak v4.2
URIUtils.createURI()
sudah tidak digunakan lagi dan mendukungURIBuilder
:sumber
URIBuilder builder = new URIBuilder() .setScheme("http") .setHost("www.google.com") .setParameters(qparams);
seperti yang dikatakan @stianSebagai penulis, saya mungkin bukan orang terbaik untuk menilai apakah pembuat URL / URI saya bagus , tetapi ini dia: https://github.com/mikaelhg/urlbuilder
Saya menginginkan solusi lengkap yang paling sederhana dengan nol dependensi di luar JDK, jadi saya harus menggulir sendiri.
sumber
Apache HTTPClient ?
sumber
Penggunaan HTTPClient bekerja dengan baik.
sumber
Ada banyak pustaka yang dapat membantu Anda dengan pembuatan URI (jangan menemukan kembali roda). Berikut tiga hal untuk Anda mulai:
Java EE 7
org.apache.httpcomponents: httpclient: 4.5.2
org.springframework: spring-web: 4.2.5.RELEASE
Lihat juga: GIST> URI Builder Tests
sumber
UriBuilder
( docs.spring.io/spring-framework/docs/current/javadoc-api/org/… ) danUriBuilderFactory
( docs.spring.io/spring-framework/docs/current/javadoc-api/org /… )Gunakan OkHttp
Ini tahun 2020 dan ada perpustakaan yang sangat populer bernama OkHttp yang telah dibintangi 35K kali di GitHub. Dengan perpustakaan ini, Anda dapat membuat url seperti di bawah ini:
sumber
addPathSegment
(bukanaddPathSegments
).Setelah dikecam karena menyarankan kelas URL. Saya akan menerima saran pemberi komentar dan menyarankan kelas URI sebagai gantinya. Saya sarankan Anda melihat lebih dekat konstruktor untuk URI karena kelasnya sangat tidak berubah setelah dibuat.
Saya rasa konstruktor ini memungkinkan Anda untuk mengatur segala sesuatu di URI yang mungkin Anda perlukan.
sumber