Android 没有按照我的要求对 url 进行编码
Android not encoding the url as per my requirement
我关注
username amit24+1@gmail.com
“+”如何编码为 %2B
编码的url是:http://test.in/api/voi/login?password=anshu&username=amit24%2B1@gmail.com
其次,如果用户名是这个 amit24*1@gmail.com 那么我们如何编码这个 url ?
我试过这样的:
String url=ConstantNet.URL_LOGIN+ "?password=" + password.getText().toString() + "&username=" + email_mobile.getText().toString();
String encodedurl = null;
try {
encodedurl = URLEncoder.encode(url,"UTF-8");
Log.e("urlEncoded",""+encodedurl);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
我从编码 url 得到的结果是这样的:
https%3A%2F%2Fgoturbo.in%2Fapi%2Fvo%2Flogin%3Fpassword%anshu%26username%3Damit%2B1%40gmail.com
但我想要的实际结果是这样的:
http://test.in/api/voi/login?password=anshu&username=amit24%2B1@gmail.com
请检查下面的代码。
String userName = "amit24*1@gmail.com";
String password = "anshu";
try {
String encodePassword = Uri.encode(password);
String encodeUserName = Uri.encode(userName);
android.util.Log.e(TAG, "onCreate: " + String.format("http://test.in/api/voi/login?password=%s&username=%s", encodePassword, encodeUserName));
} catch (Exception e) {
e.printStackTrace();
}
试试这个。
public static String encodeUrl(String url)
{
String encoded="";
for(String i:Uri.parse(url).getQuery().split("&"))
encoded+=(i.split("=")[0]+"="+ URLEncoder.encode(i.split("=")[1])+"&");
return Uri.parse(url).getScheme()+Uri.parse(url).getSchemeSpecificPart()+encoded;
}
我关注
username amit24+1@gmail.com
“+”如何编码为 %2B
编码的url是:http://test.in/api/voi/login?password=anshu&username=amit24%2B1@gmail.com
其次,如果用户名是这个 amit24*1@gmail.com 那么我们如何编码这个 url ?
我试过这样的:
String url=ConstantNet.URL_LOGIN+ "?password=" + password.getText().toString() + "&username=" + email_mobile.getText().toString();
String encodedurl = null;
try {
encodedurl = URLEncoder.encode(url,"UTF-8");
Log.e("urlEncoded",""+encodedurl);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
我从编码 url 得到的结果是这样的:
https%3A%2F%2Fgoturbo.in%2Fapi%2Fvo%2Flogin%3Fpassword%anshu%26username%3Damit%2B1%40gmail.com
但我想要的实际结果是这样的:
http://test.in/api/voi/login?password=anshu&username=amit24%2B1@gmail.com
请检查下面的代码。
String userName = "amit24*1@gmail.com";
String password = "anshu";
try {
String encodePassword = Uri.encode(password);
String encodeUserName = Uri.encode(userName);
android.util.Log.e(TAG, "onCreate: " + String.format("http://test.in/api/voi/login?password=%s&username=%s", encodePassword, encodeUserName));
} catch (Exception e) {
e.printStackTrace();
}
试试这个。
public static String encodeUrl(String url)
{
String encoded="";
for(String i:Uri.parse(url).getQuery().split("&"))
encoded+=(i.split("=")[0]+"="+ URLEncoder.encode(i.split("=")[1])+"&");
return Uri.parse(url).getScheme()+Uri.parse(url).getSchemeSpecificPart()+encoded;
}