2014-02-28 111 views
0

我需要发送json字符串{'post_id':3}到我的服务器。我使用put方法。当我运行它时,我从我的服务器得到一个500错误。我是否正确发送json数据?并帮助吗?发送json通过put

HttpClient httpclient = new DefaultHttpClient(); 
    HttpPut httput = new HttpPut("my url"); 
    HttpParams params2 = httpclient.getParams(); 
    HttpConnectionParams.setConnectionTimeout(params2, 30000); 
    String responseBody = ""; 
    HttpResponse response = null; 
    try { 
     String base64EncodedCredentials = "Basic " + Base64.encodeToString(
      ("username"+ ":" + "password").getBytes(), 
      Base64.NO_WRAP); 
     httput.setHeader("Authorization", base64EncodedCredentials); 
     httput.setHeader(HTTP.CONTENT_TYPE, "application/json"); 
     JSONObject obja = new JSONObject(); 
     try { 

      obja.put("post_id","3"); 

      httput.setEntity(new StringEntity(obj.toString(), "UTF-8")); 
        // Execute HTTP Post Request 
        response = httpclient.execute(httput); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     /// 

     HttpEntity entity= response.getEntity(); 
     Log.d(" ", " LIKE RESPONSE " + response.getStatusLine().getStatusCode()); 
+0

500内部服务器错误。这意味着出了问题服务器端 – panini

+0

我也有[同样的问题](http://stackoverflow.com/questions/18840601/android-json-post-response-status-code-500-and-status-line-内部服务器呃)和我的后端人员解决了这个问题。看起来与你的代码错误..检查后端.. –

+0

我可以知道你的协议是什么,http或https? – Dev

回答

1

你可以尝试使用离子为进行HTTP请求更容易https://github.com/koush/ion,支持标题和正文PARAMS。还检查Web服务“500”是一个内部服务器错误