Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaSpringRESTWeb请求中包含URL作为参数_Java_Spring_Url_Rest - Fatal编程技术网

在JavaSpringRESTWeb请求中包含URL作为参数

在JavaSpringRESTWeb请求中包含URL作为参数,java,spring,url,rest,Java,Spring,Url,Rest,我有一个REST web服务,我希望将URL作为参数 大致如下: Example call: http://myserver.com/myService/http://www.website.com/files/myfile.docx 原始服务器映射为: @RequestMapping(value="/myService/{url}", method=RequestMethod.GET) 显然,使用任何包含/的URL调用它会破坏到web服务的映射 我尝试在映射中使用正则表达式作为URL @

我有一个REST web服务,我希望将URL作为参数

大致如下:

Example call: http://myserver.com/myService/http://www.website.com/files/myfile.docx
原始服务器映射为:

 @RequestMapping(value="/myService/{url}", method=RequestMethod.GET)
显然,使用任何包含/的URL调用它会破坏到web服务的映射

我尝试在映射中使用正则表达式作为URL

@RequestMapping( value="/getBase64/<\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]>", method=RequestMethod.GET )
但这似乎也不起作用

@RequestMapping支持这样的正则表达式吗?还是我应该简单地用另一个符号替换参数中的,然后在服务器上转换回来

http://myserver.com/myService/http://www.website.com/files/myfile.docx
它不是RFC兼容的URL,所以我不希望它工作。 您应该以真正的restful方式发送站点ID。我认为,如果你想发送URL作为字符串参数,也许你可以改为发送hashcode?唯一的方法是不使用http://scheme和转义斜杠,但不确定它是否能正常工作

但是,如果您必须以您提到的形式发送和URL,那么这是最好的方法http://website.com/blablabla 是将POST请求和您的参数作为表单参数发送,与标准HTTP表单相同

import javax.ws.rs.POST;
import javax.ws.rs.FormParam;
import javax.ws.rs.Path;

// (...)

    @POST
    @Path("/myservice/")
    public Response myService(@FormParam("url") final String url) {
      LOG.debug(String.format("Received URL: %s", url));
    }
它不是RFC兼容的URL,所以我不希望它工作。 您应该以真正的restful方式发送站点ID。我认为,如果你想发送URL作为字符串参数,也许你可以改为发送hashcode?唯一的方法是不使用http://scheme和转义斜杠,但不确定它是否能正常工作

但是,如果您必须以您提到的形式发送和URL,那么这是最好的方法http://website.com/blablabla 是将POST请求和您的参数作为表单参数发送,与标准HTTP表单相同

import javax.ws.rs.POST;
import javax.ws.rs.FormParam;
import javax.ws.rs.Path;

// (...)

    @POST
    @Path("/myservice/")
    public Response myService(@FormParam("url") final String url) {
      LOG.debug(String.format("Received URL: %s", url));
    }

谢谢Piotrek。不幸的是,我将无法使用来自调用软件Nintex的哈希代码。我用符号替换了/,但感觉这是一个非常肮脏的解决方案。我会试试你的主意。谢谢Piotrek。不幸的是,我将无法使用来自调用软件Nintex的哈希代码。我用符号替换了/,但感觉这是一个非常肮脏的解决方案。我会试试你的想法。你能把那个参数作为一个查询参数传递吗?我不太确定你的意思是我对web服务是全新的…你能把那个参数作为一个查询参数传递吗?我不太确定你的意思是我对web服务是全新的。。。