2016-12-15 11 views
0

jsページ(角で)から、RESTリクエスト(GETメソッド)を呼び出しました。これはヘッダーを渡すためのものです。これはRESTリクエストから呼び出す関数です。getheader in GET request

 allstaffworking: function(_getstaff){ 
      var currentToken = _GetToken(); 

      var Headers = { 
       token: currentToken.stringtoken 
      }; 

      console.log("idtoken"+Headers); 

      if (currentToken !== null) { 
      $http({ 
         method : 'GET', 
         headers: Headers, 
         url : REST_URL+'staff/working' 
        }).then(function successCallback(response) { 
         _getstaff(response) 
        }, function errorCallback(response) { 
         console.log(response.statusText); 
        }); 
       } else { 
       console.log("NON SEI LOGGATO!!!"); 
      } 
     }, 

Whithout headers: Headers,それは動作しますが、私は重要なJSON文字列を渡したい:ヘッダで{"idtokenStaff":11,"staffType":{"idstaffType":2,"type":"Dipendente"},"tokenStaff":"88d08m8ve4n8i71k796vajkd01"}。私は知らないどのように私はジャージーでこの文字列を取ることができます。 @HeaderParam("token") String token

@Path("/staff") 
public class StaffController { 

BaseDao sDao = new StaffDaoImpl(); 
StaffDao stfDao = new StaffDaoImpl(); 
TokenStaffDao tsDao = new TokenStaffDaoImpl(); 
TokenStaff ts = new TokenStaff(); 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
public List<Staff> getStaff() 
{ 

    List<Staff> listOfStaff=sDao.getAll(Staff.class); 
    return listOfStaff; 
} 

    @GET 
    @Path("/working") 
    @Produces(MediaType.APPLICATION_JSON) 
    @Consumes("application/json") 
    public List<Staff> getWStaff(@HeaderParam("token") String token) throws JSONException 
{ 

     JSONObject jsonObj = new JSONObject(token); 

    Boolean id = tsDao.getExistence(jsonObj.getInt("idtokenStaff")); 
    if (id){ 
     List<Staff> listOfWStaff=stfDao.getAllW(); 
     return listOfWStaff; 
    } 
    else 
     return null; 
} 
} 

からヘッダーを取る:これは私がRESTメソッドを持っているとしてjavaファイルです。どうすればヘッダの要素を取ることができますか?

+0

* "ヘッダーの要素"とはどういう意味ですか? – Andreas

+0

"idtokenStaff"の値だけのように、ヘッダに渡されたjsonの文字列のすべての要素。 –

+0

JavaScriptコードでJSON文字列を使用してヘッダー値を作成する方法を尋ねていますか、 JavaのJSONとしてのトークンパラメータ、または何か他のものを求めていますか? – Andreas

答えて

2

これに少し遅れていますが、@Contextアノテーションを使用してhttpヘッダーを取得することもできます。 例

public List<Staff> getWStaff(@Context HttpHeaders httpheaders) { 
    String token = httpHeaders.getHeaderString("token"); 
    JSONObject jsonObj = new JSONObject(token); 
}