简体   繁体   中英

Post Parameters in Android Request

I am doing an Android application and I have a problem doing my request against my own server. I have made the server with Play Framework, and I get the parameters from a Json:

 response.setContentTypeIfNotSet("application/json; charset=utf-8");        
 JsonParser jsonParser = new JsonParser(); 
 JsonElement jsonElement = jsonParser.parse(getBody(request.body)); 
 Long id =jsonElement.getAsJsonObject().get("id").getAsLong();

When I make my GET request against my server, all is ok. But when I make a POST request, my server return me an unknown error, something about there is a malformed JSON or that it is unable to find the element.

private ArrayList NameValuePair> params;

private ArrayList NameValuePair> headers;

...

case POST:

  HttpPost postRequest = new HttpPost(host); // Add headers for(NameValuePair h : headers) { postRequest.addHeader(h.getName(), h.getValue()); } if(!params.isEmpty()) { postRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); } executeRequest(postRequest, host); break; 

I have tried to do with the params of the request, but it was a failure:

if(!params.isEmpty()) {
HttpParams HttpParams = new BasicHttpParams();

  for (NameValuePair param : params) { HttpParams.setParameter(param.getName(), param.getValue()); } postRequest.setParams(HttpParams); } 

And there is the different errors, depends on the request I make. All of them are 'play.exceptions.JavaExecutionException':

  • 'com.google.gson.stream.MalformedJsonException'
  • 'This is not a JSON Object'
  • 'Expecting object found: "id"'

I wish somebody can help me.

Here is a simple way to send a HTTP Post.

HttpPost httppost = new HttpPost("Your URL here");
httppost.setEntity(new StringEntity(paramsJson));
httppost.addHeader("content-type", "application/json");
HttpResponse response = httpclient.execute(httppost);

You would be better off using the JSON String directly instead of parsing it here. Hope it helps

 Try this,It may help u

     public void executeHttpPost(String string) throws Exception
    {
        //This method for HttpConnection
           try
          {
             HttpClient client = new DefaultHttpClient();

             HttpPost request = new HttpPost("URL");

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

           value.add(new BasicNameValuePair("Name",string));

           UrlEncodedFormEntity entity=new UrlEncodedFormEntity(value);

           request.setEntity(entity);

          client.execute(request);

           System.out.println("after sending :"+request.toString());

           }
        catch(Exception e)  {System.out.println("Exp="+e);
          }

 }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM