2014-02-11 81 views
1

我正在构建将完整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的控制器可通过以下方式工作。问题是,我想作为参数传递的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。但还没有想出如何使其工作。提前感谢您的任何帮助!

回答

4

URLEncoder看看,例如:

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

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

+0

感谢您的回答。但它要求我事先知道传递的url,对吗?如果我不提前知道该怎么办? – kevinlu

+0

然后你可以传递一个包含用户输入的变量 – gerrytan

相关问题