HttpClient中的POST / PUT

时间:2013-03-14 15:17:04

标签: java json post httpclient put

我正在尝试在客户端应用程序中执行PUT / POST以更新我的DataBase。 我正在使用HttpClient。

以下哪种方法更正确,为什么它们都不起作用?

首先: HTTP / 1.1 415不支持的媒体类型

   List <NameValuePair> nvps = new ArrayList <NameValuePair>();

   nvps.add(new BasicNameValuePair("Accept", "application/json"));
   nvps.add(new BasicNameValuePair("Content-Type", "application/json"));

   nvps.add(new BasicNameValuePair("userID", "user5"));
   nvps.add(new BasicNameValuePair("FirstName", "teste"));
   nvps.add(new BasicNameValuePair("LastName", "2"));

   httpPost.setEntity(new UrlEncodedFormEntity(nvps));

第二: HTTP / 1.1 500内部服务器错误

    httpPost.setHeader("Accept", "application/json");
    httpPost.setHeader("Content-type", "application/json");

    JSONObject obj = new JSONObject();  
    obj.put("userID", "user5");
    obj.put("FirstName", "teste");
    obj.put("LastName", "2");

    httpPost.setEntity(new StringEntity(obj.toString(), "UTF-8"));

最后我做了:HttpResponse response = httpclient.execute(httpPost);

或许问题是网址......我有:HttpPost httpPost= new HttpPost("http://localhost:8080/LULServices/webresources/entities.user"); 我想在我的用户服务(来自de DataBase的用户表)中添加一个新用户

感谢。

1 个答案:

答案 0 :(得分:0)

我通过将第一个大写字母更改为小写来解决第二种方法的问题。真是愚蠢的错误.. 它被定义为'firstName',我写的是在DataBase表中编写的。