有誰知道一個好的Scala或Java庫,可以修復格式錯誤的URI中的常見問題,例如包含應該轉義但不是?Scala或Java庫,用於修復格式錯誤的URI
7
A
回答
3
我測試了一些庫,包括現在傳統的HTTPClient URIUtil,沒有找到任何可行的解決方案。通常情況下,我已經受夠了這種類型的java.net.URI結構的雖然把成功:
/**
* 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());
}
可以使用下面的常規組合。它重複解碼URL
,直到解碼的字符串不變,這對於例如雙編碼可能是有用的。請注意,以保持它的簡單,這個樣本不提供任何故障保護等
public String urlDecode(String url, String encoding) throws UnsupportedEncodingException, IllegalArgumentException {
String result = URLDecoder.decode(url, encoding);
return result.equals(url) ? result : urlDecode(result, encoding);
}
1
我建議不要使用java.net.URLEncoder
爲百分號編碼的URI。儘管名稱,它是不是很大網址進行編碼,因爲它不遵循rfc3986標準,而不是編碼到application/x-www-form-urlencoded
MIME格式(read more here)
對於編碼Scala中的URI,我會建議從噴霧HTTP的Uri類。 scala-uri是一個替代品(免責聲明:我是作者)。
相關問題
- 1. Java - 如何使用Regex修復格式錯誤的JSON?
- 2. Java庫,使用啓發式修復錯誤編碼的文本
- 3. 修復格式化/ CSS樣式錯誤
- 4. svn存儲庫格式錯誤:如何修復修復存儲庫結構
- 5. 在java或scala中是否有任何好的規格或庫用於uri-templating(路由)
- 6. 對於格式錯誤的URI api請求,HTTP 400 vs HTTP 404
- 7. 使用Scala修飾Java庫對象
- 8. 使用python進行格式錯誤的XML修復
- 9. ionViewWillEnter錯誤:URI格式不正確
- 10. 錯誤:不支持URI格式。 C#
- 11. powerwershell cmdlet不支持URI格式錯誤
- 12. [SAS格式]錯誤:對於格式COUNTRIES,該範圍重複或值重疊:.-
- 13. 由於此錯誤,無法使用microcoap庫。任何修復?
- 14. Facebook中的OAuthException錯誤。 *易於修復*
- 15. 如何避免格式錯誤的URI序列錯誤?
- 16. Jsreport渲染異步時出現格式錯誤的URI錯誤
- 17. 適用於Scala和Java的Builder庫
- 18. 從Uri.fromFile(文件)獲得的URI格式不同於通用的URI格式?
- 19. 修復大的錯誤格式的xml文件
- 20. 如何修復在Ubuntu的源列表格式錯誤的錯誤12.04
- 21. 我需要修復格式不正確的錯誤
- 22. 當h = 0時修復格式錯誤的時間'hh:nn:ss'
- 23. 處理日誌以修復格式錯誤的IP地址?。?。?。x
- 24. 如何覆蓋或修復此錯誤
- 25. 嘗試修復Apache或Wordpress錯誤
- 26. Java文件URI錯誤?
- 27. 在java中修復nullpointerexception錯誤
- 28. 以ajax登錄表格修復錯誤
- 29. 修復數據庫錯誤編碼
- 30. 我該如何修復scala-library.jar中的錯誤