java httpclient 编码_java – 使用httpclient进行URL编码

如果您从URL urlObject = new URL(url)之类的字符串创建新的URL对象,然后执行urlObject.getQuery()和urlObject.getPath()将其拆分为右,将Query Params解析为List或Map或做某事并做一些事情:

编辑:我刚刚发现HttpClient库有一个URLEncodedUtils.parse()方法,您可以使用下面提供的代码轻松使用它.我会编辑它以适应,但是未经测试.

使用Apache HttpClient,它将类似于:

URI urlObject = new URI(url,"UTF-8");

HttpClient httpclient = new DefaultHttpClient();

List formparams = URLEncodedUtils.parse(urlObject,"UTF-8");

UrlEncodedFormEntity entity;

entity = new UrlEncodedFormEntity(formparams);

HttpPost httppost = new HttpPost(urlObject.getPath());

httppost.setEntity(entity);

httppost.addHeader("Content-Type","application/x-www-form-urlencoded");

HttpResponse response = httpclient.execute(httppost);

HttpEntity entity2 = response.getEntity();

使用Java URLConnection,它将类​​似于:

// Iterate over query params from urlObject.getQuery() like

while(en.hasMoreElements()){

String paramName = (String)en.nextElement(); // Iterator over yourListOfKeys

String paramValue = yourMapOfValues.get(paramName); // replace yourMapOfNameValues

str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue);

}

try{

URL u = new URL(urlObject.getPath()); //here's the url path from your urlObject

URLConnection uc = u.openConnection();

uc.setDoOutput(true);

uc.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

PrintWriter pw = new PrintWriter(uc.getOutputStream());

pw.println(str);

pw.close();

BufferedReader in = new BufferedReader(new

InputStreamReader(uc.getInputStream()));

String res = in.readLine();

in.close();

// ...

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值