繁体   English   中英

Spring如何在REST URL中处理#

[英]Spring how to handle # in REST URL

我有春季申请

网址格式

{URL} / locations / USA#CA#92121

我想在我的REST控制器中将“ USA#CA#92121”作为一个参数。如何实现?

当前,当我使用@PathVariable时,它仅给出“ USA”

您的网址将需要进行网址编码。 您可以为此使用Java 8中的URLEncoder。

请参阅查询字符串参数的Java URL编码

基本上

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

您需要对URL进行编码,以便它可以处理所有类型的字符,包括空格和特殊字符(如#,$等)。

最好的方法是使用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();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM