java - 如何传递包含另一个带有查询字符串的 url 的 url 查询字符串

标签 java spring url

我正在构建一个服务,它将一个完整的 url 作为参数,然后处理该 url 指向的 CSV 数据。所以我想在我的服务 url 之后将 CSV 文件的 url 作为单个参数传递。整个 url 我真的像下面这样工作,

http://mydomain.com/myservice?CSVUrl= "http://ichart.finance.yahoo.com/table.csv?s=FB&d=1&e=10&f=2014&g=d&a=4&b=18&c=2012&ignore=.csv "

我希望我的 Java Spring MVC Controller 可以按以下方式工作。问题是,我想作为参数传递的 CSVUrl 字符串包含特殊字符和其他查询字符串,这些字符串应该作为 CSVUrl 的整个字符串保留。此外,CSVUrl 应该是用户提供的内容。所以我事先不知道。这也让我很难在将它传递到 url 之前对其进行编码。

public ModelAndView processCSVFile(@RequestParam String CSVUrl) {
    ModelAndView mav = new ModelAndView();
    CsvDataProcessor csvDataProcessor = new CsvDataProcessor();
    String vizData = csvDataProcessor.getVizDataTableString(CSVUrl);

    mav.addObject("csvData", csvData);
    mav.setViewName("myservice.jsp");

    return mav;
}

这样不行。我怎样才能让它发挥作用?在我搜索时,我可能需要使用 URLEncoder 和 URLDecoder。但是还没有弄清楚如何让它工作。提前感谢您的帮助!

最佳答案

请看URLEncoder ,例如:

URLEncoder.encode("mysite.com?a=foo&b=cow", "UTF-8");

应该给你 mysite.com%2Fa%3Dfoo%26b%3Dcow

关于java - 如何传递包含另一个带有查询字符串的 url 的 url 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713664/

相关文章:

java - WebSockets如何识别二进制数据延续帧?

spring - 如何通过 Spring AOP 记录私有(private)方法?

java - 如何根据属性有条件地使 Spring Boot 应用程序在启动时终止

url - 如何调用包中已有的输入文件

url - 我可以使用带有 URL 的 exiftool 吗?

java - 从列表中删除项目或添加构建新列表?

Java HttpClient 返回 "501 Method Not Implemented"和 "POST to/not supported"

java - 有没有办法在 SonarQube 中测量 Java 代码的各种指标

Spring Security - 未创建默认表

php - 如何屏蔽地址栏中的推荐 URL