我有一个带有可替换值的url字符串:
http://DOMAIN:PORT/sendmsg?user=test&passwd=test00&text={CONTENT}
我必须对内容部分进行编码,所以我尝试了以下方法:
String tempContent = URLEncoder.encode(content, "UTF-8");
tempcontent有一个值:this+is+test+one我不想要+where spaces。空格必须用%20表示
现在,我可以做到:
String tempContent = content.replaceAll(" ", "%20");
但这只覆盖了空间,我无法控制内容输入。有没有其他有效的方法来编码java中的url内容?urlencoder不符合我的要求。
提前谢谢。。
2条答案
按热度按时间xt0899hw1#
我终于成功了,我用
使用%20正确编码的空格。这来自apachecommons httpclient项目。
7uhlpewt2#
一种解决方案是使用扩展uri模板的库(这是rfc6570)。我至少知道一个(免责声明:这是我的)。
使用此库,可以执行以下操作:
允许将Map作为值(这是一个
MapValue
在我的执行中;rfc称这些为“关联数组”),例如,如果您有一个包含user
,passwd
以及text
,您可以将模板编写为:具有Map值
parameters
包含:这将扩展为: