restlet2.1学習ノート(3)単純要求パラメータの取得
2037 ワード
getリクエストの場合、クエリーパラメータを取得する方法は次のとおりです.
クライアントはhttp://localhost:8888/?movie=xxxテスト.
restletクライアントで呼び出された場合.コードは次のとおりです.
ポストリクエストなら.リクエストパラメータを取得する方法には違いがあります.
サービス側は、Resourceメソッドを次のように定義できます.
restletクライアント呼び出しは、次のように使用できます.
Postリクエスト.クエリー・パラメータは、メソッドのパラメータとして定義できます.しかしgetリクエストはできません.client.get()メソッドはパラメータを追加できません.getリクエストはurl上でしか通過できませんか?name=valueでクエリーパラメータを追加
注意:
ブラウザがgetリクエストを送信すると、アドレスバーにurlを直接入力できますか?name=xxのようにサービス側のリソースにアクセスする
でもpostリクエストは無理です.たとえば、次のようなフォームです.コミット後、サービス側から返される内容は、movie=xxx一時停止です.
実は内容を返すべきです:xxxは一時停止してやっと正しいです
実はPostリクエストサービス側メソッドのパラメータは,クライアントがpostリクエストを介して送信してきたリクエスト体を取得する.パラメータ名には関係ありません.クライアントもパラメータ定義の名前を知る必要はありません.クライアントがpostリクエストを送信するのにパラメータがある場合は、リクエストボディにパラメータ値を直接追加すればいいです.パラメータ名ブラウザがpostリクエストを送信するときにクエリーパラメータがurlではなく、リクエストボディに直接追加される必要はありません.ブラウザがpostを送信するリクエストボディのフォーマットはname 1=value 1&name 2=value 2のようなフォーマットです.ブラウザでpostリクエストを送信したときに取得したパラメータのフォーマットが正しくありません
@Get
public String play(){
Form form = getRequest().getResourceRef().getQueryAsForm() ; //
String movie = form.getFirstValue("movie"); // key=movie
return " , :" + movie;
}
クライアントはhttp://localhost:8888/?movie=xxxテスト.
restletクライアントで呼び出された場合.コードは次のとおりです.
@Test
public void test01() throws IOException{
ClientResource client = new ClientResource("http://localhost:8888/?movie=xxx");
Representation result = client.get() ; // get
System.out.println(result.getText());
}
ポストリクエストなら.リクエストパラメータを取得する方法には違いがあります.
サービス側は、Resourceメソッドを次のように定義できます.
@Post
public String pause(String movie){
return movie + " ...";
}
restletクライアント呼び出しは、次のように使用できます.
@Test
public void test02() throws IOException{
ClientResource client = new ClientResource("http://localhost:8080/");
Representation result = client.post(" 6") ; // post
System.out.println(result.getText());
}
Postリクエスト.クエリー・パラメータは、メソッドのパラメータとして定義できます.しかしgetリクエストはできません.client.get()メソッドはパラメータを追加できません.getリクエストはurl上でしか通過できませんか?name=valueでクエリーパラメータを追加
注意:
ブラウザがgetリクエストを送信すると、アドレスバーにurlを直接入力できますか?name=xxのようにサービス側のリソースにアクセスする
でもpostリクエストは無理です.たとえば、次のようなフォームです.コミット後、サービス側から返される内容は、movie=xxx一時停止です.
実は内容を返すべきです:xxxは一時停止してやっと正しいです
実はPostリクエストサービス側メソッドのパラメータは,クライアントがpostリクエストを介して送信してきたリクエスト体を取得する.パラメータ名には関係ありません.クライアントもパラメータ定義の名前を知る必要はありません.クライアントがpostリクエストを送信するのにパラメータがある場合は、リクエストボディにパラメータ値を直接追加すればいいです.パラメータ名ブラウザがpostリクエストを送信するときにクエリーパラメータがurlではなく、リクエストボディに直接追加される必要はありません.ブラウザがpostを送信するリクエストボディのフォーマットはname 1=value 1&name 2=value 2のようなフォーマットです.ブラウザでpostリクエストを送信したときに取得したパラメータのフォーマットが正しくありません