簡體   English   中英

如何使用XML進行HTTPPUT請求?

[英]How to do HTTPPUT request using XML?

我正在學習rest API,發現很難執行PUT請求。 下面是我嘗試的代碼。 但是記錄沒有成功更新

使用的URL- http://www.thomas-bayer.com/sqlrest/PRODUCT/1

嘗試更新的值-從<PRICE>24.8</PRICE> to <PRICE>24.9</PRICE>

語言:Java

DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpPut putrequest = new HttpPut(
            "http://www.thomas-bayer.com/sqlrest/PRODUCT/1");
    List<NameValuePair> nvps = new ArrayList<NameValuePair>() {{
        add(new BasicNameValuePair("content-type", "application/xml"));
        add(new BasicNameValuePair("Server", "Apache-Coyote/1.1"));

    }};
    for (NameValuePair h : nvps) {
        putrequest.addHeader(h.getName(), h.getValue());
    }
    String xml="<?xml version=\"1.0\"?><PRODUCT xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n" +
            "    <ID>1</ID>\n" +
            "    <NAME>Chair Shoe</NAME>\n" +
            "    <PRICE>24.9</PRICE>\n" +
            "</PRODUCT>";

    putrequest.setEntity(new StringEntity(xml));

    HttpResponse response = httpClient.execute(putrequest);

    if (response.getStatusLine().getStatusCode() != 201) {
        throw new RuntimeException("Failed : HTTP error code : "
                + response.getStatusLine().getStatusCode());
    }

    httpClient.getConnectionManager().shutdown();
}

我得到500響應,但是如果記錄不存在,我可以使用HTTPPUT添加記錄。 如何解決這個問題?

如果要添加它,而您仍然得到500,那么存在以下可能性:

  1. 添加記錄后服務器遇到錯誤
  2. 服務器端代碼錯誤地放入了狀態代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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