[英]How to post an object to Jersey Rest Service
我有一個帶有以下簽名的Jersey Web服務:
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response save(Student a) {...}
我想使用org.apache.http.client.HttpClient在我的Java代碼中發出POST請求,並傳遞一個Student對象。 我該怎么做呢? 我發現了很多示例,這些示例將字符串發布為namedvaluepair。 但是對於如何發布自定義對象還不清楚。 有什么建議嗎? 提前致謝。
我用它來進行dmy測試,主體為JSON格式。 因此將您的Student對象轉換為JSON數據。
public String post(String url, HashMap<String, String>params, String body) throws Exception {
HttpPost postRequest = new HttpPost(url);
for(String key : params.keySet()){
postRequest.addHeader(key, params.get(key));
}
StringEntity input = new StringEntity(body);
input.setContentType("application/json");
postRequest.setEntity(input);
HttpResponse response = (new DefaultHttpClient()).execute(postRequest);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(
new InputStreamReader((response.getEntity().getContent())));
String output;
StringBuffer totalOutput = new StringBuffer();
while ((output = br.readLine()) != null) {
totalOutput.append(output);
}
return totalOutput.toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.