Java 如何在android中处理url中的空格

Java 如何在android中处理url中的空格,java,android,url,login,Java,Android,Url,Login,我尝试在url android中运行一些空格时出错, 代码如下: String strUrlLoginFullpath = ""; strUrlLoginFullpath = strUrlMain+"exl?u="+strUser+"&p="+strPass+"&t=1"; URL url = new URL(strUrlLoginFullpath); pub

我尝试在url android中运行一些空格时出错, 代码如下:

              String strUrlLoginFullpath = "";


              strUrlLoginFullpath = strUrlMain+"exl?u="+strUser+"&p="+strPass+"&t=1";



              URL url = new URL(strUrlLoginFullpath);
              publishProgress(40);

              //membuka koneksi
              URLConnection urlConn = url.openConnection();
              urlConn.setConnectTimeout(50000);
              urlConn.setReadTimeout(50000);

              //digunakan untuk menangkap nilai dari server
              BufferedReader in = new BufferedReader(
                      new InputStreamReader(
                              urlConn.getInputStream()));
              publishProgress(60);
              String inputLine;
              int i=0;
              while ((inputLine = in.readLine()) != null)
              {     
                  Log.v("Login",i+", return:" +inputLine+"; url: "+strUrlLoginFullpath);
                  if(i == 5)
                      {
                        Log.v("Login","RESULT >"+i+", return:" +inputLine+"; url: "+strUrlLoginFullpath);
                        str2 = inputLine;
                      }
                  i++;
              }
              in.close();


              publishProgress(80);

              publishProgress(100);
          } 
          catch (MalformedURLException e) 
          {
                Log.v("KxL", "MalformedURLException=" + e.toString());
          } 
          catch (IOException e) 
          {
                Log.v("KxL", "IOException=" + e.toString());
          } 
          return null;
    }
如你所见。。我在
strurloginfullpath=strUrlMain+“exl?u=“+strUser+”&p=“+strPass+”&t=1”中有进行登录验证的命令
但是有一种情况,strUser有时包含空格,这会使我的程序无法运行。那么如何解决这个问题呢?

您的URL参数值,以便正确编码空格和其他特殊字符

例如:

strUrlLoginFullpath = strUrlMain + "exl?u=" + URLEncoder.encode(strUser, "UTF-8") +
    "&p=" + URLEncoder.encode(strPass, "UTF-8") + "&t=1";
URL参数值,以便正确编码空格和其他特殊字符

例如:

strUrlLoginFullpath = strUrlMain + "exl?u=" + URLEncoder.encode(strUser, "UTF-8") +
    "&p=" + URLEncoder.encode(strPass, "UTF-8") + "&t=1";

URL中不允许使用空格。相反,您应该对它们进行URL编码-将所有空格替换为
%20
,事情应该在另一端显示出来

如果这些字符串中有任何其他特殊字符(在URL中被认为是特殊的)可能存在,至少对于密码来说,这是非常可能的,那么您应该使用合适的URL编码函数对整个字符串进行URL编码,以避免任何问题或安全问题


忽略,即在URL的查询字符串中传递密码的安全问题。

URL中不允许空格。相反,您应该对它们进行URL编码-将所有空格替换为
%20
,事情应该在另一端显示出来

如果这些字符串中有任何其他特殊字符(在URL中被认为是特殊的)可能存在,至少对于密码来说,这是非常可能的,那么您应该使用合适的URL编码函数对整个字符串进行URL编码,以避免任何问题或安全问题


忽略在URL的查询字符串中传递密码的安全问题。

尝试使用
URLEncoder.encode()


尝试使用
URLEncoder.encode()


创建url字符串后,只需执行以下操作:


strurloginfullpath=strUrlMain+“exl?u=“+strUser+”&p=“+strPass+”&t=1”;strurloginfullpath.replace(“,“20%”)创建url字符串后,只需执行以下操作:


strurloginfullpath=strUrlMain+“exl?u=“+strUser+”&p=“+strPass+”&t=1”;strUrlLoginFullpath.replace(“,“20%”)添加了一个如何使用它的示例。@Pragnani true,最好是显式的。我曾经被那个咬过一口。已编辑。仍然不起作用。。url将如下所示:
%0A
是换行符,您可能需要先
trim()
您的密码。我已经修剪了我的密码。。。用户名仍然是yu+kita我想要的只是用户名,因为yu%20kita添加了一个关于如何使用它的示例。@Pragnani true,最好是显式的。我曾经被那个咬过一口。已编辑。仍然不起作用。。url将如下所示:
%0A
是换行符,您可能需要先
trim()
您的密码。我已经修剪了我的密码。。。用户名仍然是yu+kita我想要的是用户名yu%20kita