在android中,方括号导致URL字符串错误



我在Android中执行URL时遇到了问题,我确信这与方括号有关,但我找不到任何解决方案。欢迎提出任何建议。

  protected String doInBackground(String... arg0) {
        try {

            int indexdevice = 12;
            String uuu = URLEncoder.encode  ("http://<ipaddress>/ZWaveAPI/Run/devices[2].instances[0].commandClasses[0x25].Set(255)", "UTF-8");
            HttpClient Client = new DefaultHttpClient();
            String SetServerString = "";
            HttpGet httpget = new HttpGet(uuu);
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            SetServerString = Client.execute(httpget,responseHandler);
            Log.v("NAS", "--------- amount is  " + SetServerString);
        } 
            catch (Exception ex) 
            {
            Log.v("NAS",String.valueOf(ex));
            }
我得到的错误是:
 07-08 12:37:33.970: V/NAS(1800): java.lang.IllegalStateException: 
Target host must not be null, or set in parameters. scheme=null, host=null, 

您正在url编码完整的url,包括http和主机名。这行不通。只需对主机地址后面的部分进行编码:

String uuu = "http://<ipaddress>/"+URLEncoder.encode  ("ZWaveAPI/Run/devices[2].instances[0].commandClasses[0x25].Set(255)", "UTF-8");

http://可能正在被编码字符串foo = foo。replaceFirst("http ://", ");Foo = "http://"+ Foo

最新更新