Cara Mengekodkan URL HTTP dengan betul dalam Java
Apabila bekerja dengan URL dalam Java, adalah penting untuk mengekodnya dengan betul untuk memastikan ia ditafsirkan dengan tepat oleh pelayan. Walaupun java.net.URLEncoder boleh membantu dalam pengekodan borang HTML, ia gagal apabila ia berkaitan dengan pengekodan URL HTTP. Artikel ini meneroka cara mengekod URL HTTP dengan berkesan menggunakan kelas java.net.URI.
Kelas java.net.URI menyediakan cara untuk memanipulasi dan mengekod komponen URI dan URL. Pembina hujah tunggal URI tidak terlepas daripada aksara haram, meninggalkan anda dengan ralat seperti yang diterangkan dalam soalan. Untuk menangani isu ini, anda harus menggunakan pembina dengan berbilang argumen, seperti:
URI uri = new URI("http", "search.barnesandnoble.com", "/booksearch/first book.pdf", null); URL url = uri.toURL();
Pendekatan ini secara berkesan melarikan diri daripada aksara yang menyalahi undang-undang, memberikan anda hasil yang diingini:
http://search.barnesandnoble.com/booksearch/first%20book.pdf
Ia adalah penting untuk ambil perhatian bahawa pengekodan ini hanya mempengaruhi aksara yang menyalahi undang-undang, bukan aksara bukan ASCII. Untuk String yang mengandungi hanya aksara AS-ASCII, anda boleh menggunakan kaedah toASCIIString:
URI uri = new URI("http", "search.barnesandnoble.com", "/booksearch/é", null); String request = uri.toASCIIString();
Ini amat berguna untuk URL dengan pertanyaan yang mengandungi aksara bukan ASCII:
URI uri = new URI("http", "www.google.com", "/ig/api", "weather=São Paulo", null); String request = uri.toASCIIString();
Dengan memanfaatkan kelas java.net.URI, anda boleh mengekod URL HTTP dengan berkesan, memastikan ia dikendalikan dengan betul oleh pelayan dan menghasilkan perolehan data yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Mengekodkan URL HTTP dengan betul dalam Java Menggunakan Kelas java.net.URI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!