Điều tôi đang tìm kiếm cụ thể là một số mã trong Java sẽ lấy đối tượng Map
và chuyển đổi nó thành chuỗi truy vấn mà tôi có thể thêm vào URL mà tôi quay trở lại. Tôi chắc rằng có một thư viện thực hiện điều này và nhiều hơn nữa, nhưng tôi không thể tìm thấy nó với một tìm kiếm nhanh chóng trên Google. Bất cứ ai biết một trong đó sẽ làm điều này?Có gói Java để xử lý URL xây dựng không?
Trả lời
Tôi đã tìm thấy apache httpcomponents là một thư viện vững chắc và linh hoạt để xử lý HTTP trong Java. Tuy nhiên, đây là một lớp học mẫu, mà có thể đủ cho các chuỗi truy vấn xây dựng URL:
import java.net.URLEncoder;
public class QueryString {
private String query = "";
public QueryString(HashMap<String, String> map) {
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
query += URLEncoder.encode(pairs.getKey(), "utf-8") + "=" +
URLEncoder.encode(pairs.getValue(), "utf-8");
if (it.hasNext()) { query += "&"; }
}
}
public QueryString(Object name, Object value) {
query = URLEncoder.encode(name.toString(), "utf-8") + "=" +
URLEncoder.encode(value.toString(), "utf-8");
}
public QueryString() { query = ""; }
public synchronized void add(Object name, Object value) {
if (!query.trim().equals("")) query += "&";
query += URLEncoder.encode(name.toString(), "utf-8") + "=" +
URLEncoder.encode(value.toString(), "utf-8");
}
public String toString() { return query; }
}
Cách sử dụng:
HashMap<String, String> map = new HashMap<String, String>();
map.put("hello", "world");
map.put("lang", "en");
QueryString q = new QueryString(map);
System.out.println(q);
// => "hello=world&lang=en"
Có vẻ ổn! Tuy nhiên, tôi khuyên bạn nên sử dụng Generics trong mã của bạn! – notnoop
Tôi sẽ chấp nhận điều này, nhưng yah phương pháp URLEncoder.encode(String s)
không còn được dùng để ủng hộ một đối số có định dạng nữa. Ngoài ra, điều này là tuyệt vời, cảm ơn. –
Bialecki
@miku là có một lớp trong HttpComponents mà làm những gì mã của bạn không? – ArtB
Có this trực tuyến, vì vậy bạn chỉ có thể gọi bất kỳ:
InputStream serverInput = post(URL url, Map parameters);
InputStream serverInput = post(URL url, Map parameters);
InputStream serverInput = post(URL url, Map cookies, Map parameters);
InputStream serverInput = post(URL url, String[] cookies, Object[] parameters);
InputStream serverInput = post(URL url, Object[] parameters).
Ông cung cấp mã nguồn quá.
Hãy thử URIBuilder từ Apache Http Compoments (HttpClient 4).
Nó không thực sự có bản đồ, nhưng rất thích hợp để xây dựng URI.
- 1. Xử lý URL điên dàn dựng Azure
- 2. Xử lý mật khẩu trong tập lệnh xây dựng NAnt
- 3. Xây dựng một URL tuyệt đối từ một URL có liên quan trong Java
- 4. tệp jaxb.properties từ gói java không có trong Maven được xây dựng .war
- 5. Cấu trúc gói xây dựng với các gói con/gói
- 6. Có nên sử dụng CruiseControl.NET để xử lý các tác vụ không liên quan đến nguồn xây dựng không?
- 7. Gói Python để xử lý tín hiệu
- 8. lỗi xây dựng gradle đa cấp: gói không tồn tại
- 9. Khi bước Xây dựng không thành công trong xây dựng thành phố nhóm, tôi có thể dừng các bước xây dựng trong tương lai không?
- 10. Xử lý URL của RESTful url
- 11. R 3.0.1 cảnh báo gói xây dựng
- 12. Thêm bước xây dựng tùy chỉnh với gói gói thầu
- 13. Xây dựng các url ngược trong get_resource_uri
- 14. Xây dựng URL Hình ảnh Hồ sơ
- 15. Không thể xây dựng một Zepto gói tùy chỉnh
- 16. Sử dụng Hudson để xây dựng gói RPM
- 17. Cách xử lý các gói x86 và x64
- 18. Đường dẫn xây dựng Java
- 19. Gradle có thể xử lý cấu trúc thư mục xây dựng không tuân thủ các quy ước mặc định không?
- 20. Có thể sử dụng API Java 8 Streams để xử lý không đồng bộ không?
- 21. Làm cách nào để triển khai gói xây dựng trong Java?
- 22. Làm cách nào để xử lý đúng ngoại lệ trong các nhà xây dựng?
- 23. lý do tại sao tôi không xây dựng sqlite3 khi xây dựng python?
- 24. Dự án Web Java không xây dựng chính xác
- 25. Có cách nào để xây dựng mô-đun Dojo bao gồm một tệp đơn lẻ từ vị trí gói không?
- 26. eclipse java chú thích xử lý
- 27. Bạn có thể sử dụng tệp xây dựng ANT làm tệp xây dựng Phing không?
- 28. Có gói nào để xử lý các tùy chọn dòng lệnh trong R không?
- 29. Xây dựng v8 không có JIT
- 30. Gói Xử lý Ngôn ngữ Tự nhiên
Tôi có cùng một câu hỏi: http://stackoverflow.com/questions/1405731/is-there-a-java-method-that-encodes-a-collection-of-parameters-as-a-url-query -com. Không có câu trả lời tốt mặc dù. : -/ –
Xem thêm http://www.leveluplunch.com/java/examples/construct-build-uri/ và https://www.quora.com/Is-there-an-open-source-URL-manipulation -library-in-Java. – Vadzim
Bản sao có thể có của [Cách thành ngữ để soạn URL hoặc URI bằng Java là gì?] (Http://stackoverflow.com/questions/883136/what-is-the-idiomatic-way-to-compose-a-url -or-uri-in-java) –