Có ai biết thư viện Scala hoặc Java tốt có thể khắc phục các sự cố thường gặp trong URI không đúng định dạng, chẳng hạn như chứa các ký tự cần được thoát hay không?Thư viện Scala hoặc Java để sửa các URI không đúng định dạng
Trả lời
Tôi đã thử nghiệm một vài thư viện, bao gồm di sản hiện tại URIUtil của HTTPClient mà không cảm thấy tôi đã tìm thấy bất kỳ giải pháp khả thi nào. Thông thường, tôi đã có đủ thành công với loại cấu trúc java.net.URI này mặc dù:
/**
* Tries to construct an url by breaking it up into its smallest elements
* and encode each component individually using the full URI constructor:
*
* foo://example.com:8042/over/there?name=ferret#nose
* \_/ \______________/\_________/ \_________/ \__/
* | | | | |
* scheme authority path query fragment
*/
public URI parseUrl(String s) throws Exception {
URL u = new URL(s);
return new URI(
u.getProtocol(),
u.getAuthority(),
u.getPath(),
u.getQuery(),
u.getRef());
}
có thể được sử dụng kết hợp với quy trình sau đây. Nó liên tục giải mã một số URL
cho đến khi chuỗi được giải mã không thay đổi, có thể hữu ích đối với ví dụ: mã hóa kép. Lưu ý, để đơn giản, mẫu này không có bất kỳ hình thức nào không an toàn, v.v.
public String urlDecode(String url, String encoding) throws UnsupportedEncodingException, IllegalArgumentException {
String result = URLDecoder.decode(url, encoding);
return result.equals(url) ? result : urlDecode(result, encoding);
}
Tôi khuyên bạn không nên sử dụng java.net.URLEncoder
để mã hóa phần trăm URI. Mặc dù cái tên, nó không phải là rất tốt cho mã hóa URL như nó không làm theo các tiêu chuẩn rfc3986 và thay vào đó mã hóa sang định dạng application/x-www-form-urlencoded
MIME (read more here)
Đối với mã hóa URI trong Scala Tôi muốn giới thiệu lớp Uri từ phun http. scala-uri là một thay thế (tuyên bố từ chối trách nhiệm: Tôi là tác giả).
- 1. Có thư viện Java nào để phân tích chuỗi định dạng printf không?
- 2. Thư viện Java cho mã làm đẹp/định dạng
- 3. Cách sử dụng trình sửa đổi truy cập Java đúng cách trong phát triển thư viện
- 4. Java: Thư viện ECC (sửa lỗi mã)?
- 5. Lỗi máy chủ SignalR "ConnectionId có định dạng không đúng." với Thư viện SignalR-ObjC
- 6. java mp3/chỉnh sửa/biên tập thư viện java
- 7. chuỗi định dạng đúng cho String.format hoặc tương tự
- 8. "Chuỗi đầu vào không đúng định dạng."
- 9. os.path.join không định dạng đúng đường dẫn
- 10. Sử dụng sed hoặc awk để sửa định dạng ngày
- 11. Chuỗi đầu vào không đúng định dạng
- 12. thư viện bằng số cho Scala
- 13. thư viện biểu đồ cho scala
- 14. Scala - Java =? (Hoặc Clojure - Java =?)
- 15. Định dạng số điện thoại và thư viện xác nhận
- 16. Có thư viện .NET để định dạng số lớn dưới dạng văn bản không?
- 17. Có thư viện hoặc khung công tác Java để truy cập các cổng nối tiếp không?
- 18. tìm thư viện java để làm việc với định dạng PSD
- 19. Thư viện đồ họa Java
- 20. Các thư viện Scala có tuân thủ cùng quy ước miền ngược để đặt tên các gói như Java không?
- 21. Cú pháp và định dạng của trình sửa đổi Java
- 22. Thư viện và khung công tác Scala
- 23. Thư viện Java Java
- 24. đề nghị thư viện Scala io
- 25. Thư viện Scala SBT và JNI
- 26. Có thư viện python để chỉnh sửa các tệp doc msword không?
- 27. Thư viện WebP cho java?
- 28. Sử dụng Ensime + SBT để duyệt thư viện scala
- 29. Thư viện theo dõi khuôn mặt cho Java hoặc Python
- 30. Có thư viện PHP để sửa ngữ pháp không?