有谁知道一个好的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. 修复格式化/ CSS样式错误
- 3. svn存储库格式错误:如何修复修复存储库结构
- 4. 在java或scala中是否有任何好的规格或库用于uri-templating(路由)
- 5. 对于格式错误的URI api请求,HTTP 400 vs HTTP 404
- 6. 使用python进行格式错误的XML修复
- 7. 使用Scala修饰Java库对象
- 8. ionViewWillEnter错误:URI格式不正确
- 9. 错误:不支持URI格式。 C#
- 10. [SAS格式]错误:对于格式COUNTRIES,该范围重复或值重叠:.-
- 11. 由于此错误,无法使用microcoap库。任何修复?
- 12. Jsreport渲染异步时出现格式错误的URI错误
- 13. 如何避免格式错误的URI序列错误?
- 14. 适用于Scala和Java的Builder库
- 15. 从Uri.fromFile(文件)获得的URI格式不同于通用的URI格式?
- 16. 如何修复在Ubuntu的源列表格式错误的错误12.04
- 17. Java文件URI错误?
- 18. 处理日志以修复格式错误的IP地址?。?。?。x
- 19. 当h = 0时修复格式错误的时间'hh:nn:ss'
- 20. 尝试修复Apache或Wordpress错误
- 21. 如何覆盖或修复此错误
- 22. 快速修复Java错误ArrayIndexOutOfBoundsException
- 23. 以ajax登录表格修复错误
- 24. 修复数据库错误编码
- 25. 如何修复Scala中的这种类型不匹配错误?
- 26. 修复eclipse错误
- 27. nhibernate错误修复
- 28. 使用robots.txt或301重定向修复重复错误
- 29. 修复xutility的错误?
- 30. Domino 9.01修复3 CKEditor错误 - 9.01无错误修复1