2014-10-16 70 views
2

我正在定义一个RESTful WebService在Java在RESTful WebServices中传递一个URL作为参数

它输入:

  • 一个用户名(例如,jdoe);
  • URL(例如:https://blablablabla.io/sample?boh=mah)。

通过使用得到HTTP协议方法,它应产生一个JSON文件。

哪个是传递这些参数的最佳方法?

在这种特殊情况下,为了正确传递一个URL作为参数,是否需要遵循一个最佳实践?

+0

FYI:有一个在Dropwizard,你有一个简单的REST框架,包括码头和其他有用的东西。易于使用,你有一个很好的描述如何开始 - > http://dropwizard.io/getting-started.html – user3280180 2014-10-16 14:32:49

+0

我还没有在JBoss上使用RESTEasy。 – vdenotaris 2014-10-16 14:39:50

回答

3

必须先对其进行编码,可以使用

URLEncoder.encode("url"); 
+0

然后,我应该将它作为QueryParam传递吗? – vdenotaris 2014-10-16 14:36:30

+0

没错,除非你想把它作为POST数据过去。 – 2014-10-17 17:15:51

1

如果要定义一个http GET方法,然后向它传递参数是通过URI查询字符串的唯一途径(即?x=y&...) 。因为GET调用不能接收消息正文。

如果您想传递更复杂的信息,您需要使用POSTPUT或其他一些方法。虽然,如果你实际上只是得到信息(语义),那么你不应该使用任何东西,但GET。你

+0

因此,我应该通过URL作为queryparam或pathparam? – vdenotaris 2014-10-16 15:16:20

+1

@vdenotaris“我建议在路径中放入所有必需的参数,任何可选参数几乎肯定都是查询字符串参数。”请参阅:[此答案](http://stackoverflow.com/a/11569077/2479481) – 2014-10-16 15:18:28

-2

也可以使用的路径参数

这是例如

@Path("/users") 
public class UserResorce { 

     @GET 
     @Path("/{username}") 
     @Produces(MediaType.APPLICATION_JSON) 
     public String getUser(@PathParam("username") String username)){ 

     } 
} 


The url is http://domain_name/your_application_path/users/username 
+0

请在回答前阅读问题。 – vdenotaris 2014-10-16 15:11:47