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

时间:2014-02-11 21:42:46

标签: java spring url

我正在构建一个服务,该服务将完整的URL作为参数,然后处理该URL指向的CSV数据。所以我想在我的服务网址之后将CSV文件的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控制器可以按照以下方式工作。问题是,我想作为参数传递的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。但还没弄明白如何让它发挥作用。提前感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

请查看URLEncoder,例如:

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

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