只想在我的过程中捆绑松散的末端。我最终不需要对我的测试进行编码,因为这些URL将直接被调用,而不是通过浏览器,但是在我意识到这一点之前,我已经有了一种编码方法。基于Kaj的建议(请参阅我的原始问题的评论),我将字符串编码为部分,将我需要的任何字符拆分为未编码(即针对此案例为:
和/
)。这比我觉得它需要更复杂一些,但它达到了它的目的。
- 编辑:相关代码 -
这里是我的测试的方法,我称之为打开与服务器的连接(使用基本身份验证):
private void getConnection(String target, String user, String pass) throws Exception
{
URL url = new URL(target);
URLConnection conn = url.openConnection();
//Here's where basic auth kicks in
String creds = user + ":" + pass;
String encoded = new sun.misc.BASE64Encoder().encode(creds.getBytes());
conn.setRequestProperty("Authorization", "Basic " + encoded);
//This part doesn't rely on authentication
conn.connect();
}
编码(如必要的)将在传递到这个方法之前完成。
您是否在您的测试用例中编码了uri请求? – Kaj 2011-06-03 18:29:21
我没去过。如果这是一个带有直接用户界面的网站,我会直接跳到这里,但是URI将从另一个服务中调用(我的web服务实际上是一个中间人,从数据库中读取数据并吐出XML),所以我不会“不知道他们的电话是否会被编码。你认为编码是导致差异的唯一因素吗? – ZKSteffel 2011-06-03 18:35:30
可能,但我不能说这绝对是唯一的区别。 – Kaj 2011-06-03 18:48:03