我试图找到解决这个现在整个晚上......“非法字符”,在Android中的URL HTTPGET得到双重编码
我写这从一个Web服务器请求数据的应用程序。服务器以JSON格式回答。 一切运作良好,当我进入像一个元音到我的应用程序时除外。
在下面我假定请求URL是http://example.com/?q=和我寻找“耶格尔”
然后正确的呼叫中为h ++号码:?//example.com/ Q =Ĵ%C3% A4ger (对不起,加迹象,但垃圾邮件防护犯规让我正确地张贴。)
所以我现在的问题是:
当我给我的网址字符串编码或未编码到HTTPGET它总是导致在双倍编码的URL中。
然后对我的服务器的请求是http://example.com/?q=J%25C3%25A4ger(它编码百分号) 这导致服务器在数据库中搜索J%C3%A4ger什么是明显的错误。
所以我的问题是我怎么能achive,如果用户输入“耶格尔”我的应用程序调用正确编码的网址是什么?
感谢您的帮助!
这是目前使用的代码... IST或许是最差的想法,我有...
URI url = new URI("http", "//example.com/?q=" + ((EditText)findViewById(R.id.input)).getText().toString(), null);
Log.v("MyLogTag", "API Request: " + url);
HttpGet httpGetRequest = new HttpGet(url);
// Execute the request in the client
HttpResponse httpResponse;
httpResponse = defaultClient.execute(httpGetRequest);
请张贴一些代码。 – 2012-04-18 23:01:14
@菲利普 - Reichard你在这里 – 2012-04-18 23:07:16