阿帕奇HTTP客户端表单提交正确编码百分号(%)这似乎是一个非常简单的问题,但很可惜,我不能弄明白也不是找到一个解决办法其他地方。我连接了一个内部有%的字符串,并且由于某种原因它在%之后添加了25。任何人都知道解决这个简单的问题?使用以UrlEncode
String buttonCheck = "%26" + DATABASE.getValue("buttonCheck") + "%26";
就出来
"%2526value%2526"
编辑:这已经很明显,这个问题实际上是URL编码中,我会更多的相关数据添加到这个问题。
我正在开发一款Android应用,从现场解析HTML,并允许用户通过Android UI与它进行交互。我正在将%编码为表单的参数。
public class CLASS extends Activity
{
DefaultHttpClient client = new DefaultHttpClient;
String url = "http://www.url.com"
HttpRequestBase method = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add("buttoncheck", "%26" + DATABASE.getValue("buttonCheck") + "%26");
//DATABASE is simply a class that handles a HashMap
HttpPost methodPost = (HttpPost) method;
methodPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
execute(method);
}
而不是发送的
buttoncheck=%26value%26
形式的价值,我得到
buttoncheck=%2526value%2526
不能再现。请给出所有相关的代码。 – Bozho 2010-09-21 06:38:41
我不知道为什么它现在是这样,但只是想指出'%'是ASCII'0x25'。所以至少在那里它与字符串中的某些东西有关。 – 2010-09-21 06:40:43
@ org.life.java我非常怀疑,因为25之前出现26.我可以理解,如果它后,但事实并非如此。 DATABASE只是一个具有哈希映射访问方法的类,没什么特别。然后我将buttonCheck添加到另一个用于HttpClient发布的地图。嗯,我还应该补充说,我通过Http发送后发送了字符串。我会研究一下。 – 2010-09-21 06:50:09