2014-10-16 27 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