2017-01-01 60 views
0

憑據我有一個這樣的網址:澤西得到URL

http://log:[email protected]:8080/myendpoint 

和澤西端點:

@GET @Produces(MediaType.APPLICATION_JSON) @Path("/login") 
    @Consumes(MediaType.APPLICATION_JSON) public Response login(
      @Context HttpHeaders headers, @QueryParam("callback") String callback) 
{ 
} 

而且最好我想在我的終點法「登錄」和「通行證」 。如何在澤西島做到這一點?我試過很多方法endpint簽名,過濾器等,但它讓我

http://localhost,而不是到處http://log:[email protected]

如何實現這一目標?

回答

1

假設在你的前端,您作爲使用JSON.stringify()然後回到你的終點法JSON對象發送您的參數。將此作爲第二個參數添加到該方法簽名JsonObject payload。然後,你可以在方法中訪問您的查詢參數如下

String log = payload.getString("log"); 
String pass = payload.getString("pass"); 

修訂版

@Path("/login") 
@GET 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public Response login(@Context UriInfo uriInfo, @Context HttpHeaders headers, @QueryParam("callback") String callback) { 
    URI requestUri = uriInfo.getRequestUri(); 
    String authority = requestUri.getAuthority(); // authority contains what you need; 
} 
+0

謝謝,但我不使用JSON,只是得到郵遞員請求。我怎樣才能從網址獲得它?這種方法與jsonp基本身份驗證問題有關。我無法發送授權標題,所以我決定像我描述的那樣發送登錄/傳遞URL。如何從url中檢索它? – avalon

+0

然後只需添加'@QueryParam(「日誌」)字符串日誌,@QueryParam(「通」)字符串pass'到您的端點方法的簽名 – Dummy

+0

謝謝,但你不明白。我添加登錄並通過域之前,他們沒有他們的名字。 '登錄'和'通過'它只是登錄和密碼。任何字符串可能在他們的位置。 'mylogin','mypassword'。這不是名字,但隨機字符串 – avalon