2012-03-28 22 views
8

私はいくつかのwebメソッドを持つREST Webサービスを構築しました。 しかし、これらのメソッドにパラメータを渡すことはできません。Javaでパラメータを渡すREST

I.E.

@GET 
@Path("hello") 
@Produces(MediaType.TEXT_PLAIN) 
public String hello(String firstName, String lastName){ 

    return "Hello " + firstname + " " + lastname 
} 

このメソッドを呼び出す方法と、firstnameとlastnameのパラメータを渡す方法はありますか? 私はこのような何か試してみました:

ClientConfig config = new DefaultClientConfig(); 

Client client = Client.create(config); 

WebResource service = client.resource(getBaseURI()); 

ClientResponse response = service.path("hello") 
.accept(MediaType.TEXT_PLAIN).put(ClientResponse.class); 

をしかし、ここで私は、パラメータを追加するには?

は助けになるはずです、あなたの助けのために よろしく、 クリス

答えて

6

Thisチュートリアルをいただき、ありがとうございます。パラメータを含めるには、this以前のSO Postのように@PathParamコマンドを使用する必要があります。

+0

ある

ClientResponse response = resource.queryParams(formData).post(ClientResponse.class, formData); 

はあなたが私をたくさん助けた感謝します。しかし、私のメソッドが文字列の配列を必要とする場合はどうなりますか? – Chris

+0

@Chris:これは役立つはずです:http://stackoverflow.com/questions/5484209/pass-array-as-a-parameter-in-restful-webservice – npinti

+0

ありがとうございました。このリンクは、あなたの最後のリンクのコンテキストにも役立ちました:http://stackoverflow.com/questions/5718575/how-can-i-grab-all-query-parameters-in-jersey-jaxrs – Chris

8

あなたはREST APIの開発にSpringMVCを使用している場合、あなたは

@QueryParam("PARAMETER_NAME"); 

メソッドを使用することができジャージの場合

@RequestParam("PARAMETER_NAME"); 

を使用することができますが、この

public String hello(@RequestParam("firstName")String firstName, @RequestParam("lastName")String lastName){ 

return "Hello " + firstname + " " + lastname 

}

のように見えます
2

あなたを助けるFORMDATAが

MultivaluedMap formData = new MultivaluedMapImpl(); 


formData.add("Key","Value"); 
formData.add("Key","Value"); 
... 
... 
... 
formData.add("Key","Value"); 
+0

これは私にとって有望だが、ClientResponseはAndroidでは利用できないようだ... –

関連する問題