2015-09-25 70 views
0

我有具有格式的URLSpring是如何处理#在REST URL

{URL} /位置/ USA#CA#92121

我想春天应用

“USA# CA#92121'作为我的REST控制器中的一个参数。我该如何实现这一目标?

目前其只给“USA”当我用@PathVariable

+0

保存自己的一些麻烦,并使用不同的符号:)在URL – ZhongYu

+0

“安全” 的字符:' - 。 _〜! $&()* +,; =:@ /?' – ZhongYu

+0

我希望我可以选择那个:-) – user1228785

回答

0

您的网址将需要URL编码。您可以在Java 8中使用URLEncoder。

Java URL encoding of query string parameters

基本上

String q = "random word £500 bank $"; 
String url = "http://example.com/query?q=" + URLEncoder.encode(q, "UTF-8"); 
0

你需要编码的网址,以便它可以处理所有类型的字符,包括空格和特殊字符,如#,$等。

的最好的办法是使用URLEncoder 然后找回你想要的值,你将需要使用URLDecoder

例如:

package com.test; 

import java.io.UnsupportedEncodingException; 
import java.net.URLEncoder; 
import java.net.URLDecoder; 

public class EncodeURL { 

    public static void main(String args[]){ 
     string url = "{URL}/locations/USA#CA#92121"; 
     try { 
      string encodedString = URLEncoder.encode(url, "UTF-8"); 
      System.out.println("Encoded String: " + encodedString); 
      System.out.println("Decoded String: " + URLDecoder.dencode(encodedString, "UTF-8")); 
     } catch (UnsupportedEncodingException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 
+0

我正在开发REST端点而不是客户端... – user1228785