java http url 编码_Java中的HTTP URL地址编码

java.net.URI类可以帮助;在URL的文档中找到

Note, the URI class does perform escaping of its component fields in certain circumstances. The recommended way to manage the encoding and decoding of URLs is to use an URI

使用带有多个参数的构造函数,如:

URI uri = new URI(

"http",

"search.barnesandnoble.com",

"/booksearch/first book.pdf",

null);

URL url = uri.toURL();

//or String request = uri.toString();

(URI的单参数构造函数不转义非法字符)

编辑:添加完全限定类名,以避免与其他URI类(如apaches httpclient)混淆,

EDIT 2:

只有非法字符通过上述代码转义 – 它不转义非ASCII字符(参见fatih的注释)。

toASCIIString方法可用于获取仅包含US-ASCII字符的字符串:

URI uri = new URI(

"http",

"search.barnesandnoble.com",

"/booksearch/é",

null);

String request = uri.toASCIIString();

编辑3:

对于包含诸如http://www.google.com/ig/api?weather=SãoPaulo的查询的网址,请使用构造函数的5参数版本:

URI uri = new URI(

"http",

"www.google.com",

"/ig/api",

"weather=São Paulo",

null);

String request = uri.toASCIIString();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值