Http body message

I sent a method to objective-c to send an http message, and in the body I put the line:

NSString *requestBody = [NSString stringWithFormat:@"mystring"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[requestBody dataUsingEncoding:NSUTF8StringEncoding]]; 

now on android i want to do the same and i am looking for a way to set the body of the http message.

+6
source share
5 answers

You can use this snippet -

 HttpURLConnection urlConn; URL mUrl = new URL(url); urlConn = (HttpURLConnection) mUrl.openConnection(); ... //query is your body urlConn.addRequestProperty("Content-Type", "application/" + "POST"); if (query != null) { urlConn.setRequestProperty("Content-Length", Integer.toString(query.length())); urlConn.getOutputStream().write(query.getBytes("UTF8")); } 
+4
source

You can use HttpClient and HttpPost to create and send a request.

 HttpClient client= new DefaultHttpClient(); HttpPost request = new HttpPost("www.example.com"); List<NameValuePair> pairs = new ArrayList<NameValuePair>(); pairs.add(new BasicNameValuePair("paramName", "paramValue")); request.setEntity(new UrlEncodedFormEntity(pairs )); HttpResponse resp = client.execute(request); 
+8
source

You can try something like this using HttpClient and HttpPost :

 List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("mystring", "value_of_my_string")); // etc... // Post data to the server HttpPost httppost = new HttpPost("http://..."); httppost.setEntity(new UrlEncodedFormEntity(params)); HttpClient httpclient = new DefaultHttpClient(); HttpResponse httpResponse = httpclient.execute(httppost); 
+6
source

You can use HttpClient and HttpPost to send json string as body:

 public void post(String completeUrl, String body) { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(completeUrl); httpPost.setHeader("Content-type", "application/json"); try { StringEntity stringEntity = new StringEntity(body); httpPost.getRequestLine(); httpPost.setEntity(stringEntity); httpClient.execute(httpPost); } catch (Exception e) { throw new RuntimeException(e); } } 

Json body example:

 { "param1": "value 1", "param2": 123, "testStudentArray": [ { "name": "Test Name 1", "gpa": 3.5 }, { "name": "Test Name 2", "gpa": 3.8 } ] } 
+1
source
  ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

then add items for each pair

  nameValuePairs.add(new BasicNameValuePair("yourReqVar", Value); nameValuePairs.add( ..... ); 

Then use HttpPost:

 HttpPost httppost = new HttpPost(URL); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

and use HttpClient and Response to get a response from the server

0
source

Source: https://habr.com/ru/post/893279/


All Articles