フォーマットがオフの場合は失礼します(ここで新しい)。私は以下のようなRESTサービスを持っています(実装の詳細は省略されています):
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;
@Controller
@RequestMapping(value={"/myservice", "/myservice/"}, method=RequestMethod.POST)
public class MyClass{
@RequestMapping(value={"/",""}, method=RequestMethod.GET)
public ModelAndView doSomething(@RequestParam(value="params", required=true) String params){
Map<String,Object> mymap = new HashMap<String,Object>();
mymap.put("myparam",params);
return new ModelAndView(new MappingJacksonJsonView(), mymap);
}
}
私がやりたいのは、上記のサービスから「mymap」オブジェクトを取得できるHttpClient(org.apache.commons.httpclient.HttpClientを使用して、apacheから別のhttpclientがあることを知っています)を作成することです。クライアントコードで次のようなことをしなければならないことを理解しています。
public Map<String,String> getMap(){
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod("myurl");
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
NameValuePair [] pair = { new NameValuePair("content","mytestcontentvalue")};
((GetMethod)method).setQueryString(pair);
int code = client.executeMethod(method);
Map<String,String> mymap = ?? /// what do i do here?
return mymap;
}
私は解決策を探していましたが、ここで応答を読む方法を見つけることができません。クライアントとサービスを書くのはこれが初めてなので、解決策を見つけたかもしれませんが、それを理解することはできませんでした:(どんな提案も本当に役に立ちます!!!ありがとう。