簡體   English   中英

如何將一個對象發布到Jersey Rest Service

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM