type plain form data content charset application android encoding header http-post content-type

android - form - content-type text/plain



Android establece el tipo de contenido HttpPost (2)

HttpPost httppost = new HttpPost(builder.getUrl()); httppost.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=UTF-8"); // Add your data httppost.setEntity(new UrlEncodedFormEntity(builder .getNameValuePairs(), "UTF-8")); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost);

Nota: el constructor solo contiene pares url y namevalue.

¿Cómo se puede cambiar el tipo de contenido de un HttpPost en Android?

Para una solicitud, necesito establecer el tipo de contenido a application / x-www-form-urlencoded

Así que obtuve este pequeño código:

httpclient=new DefaultHttpClient(); httppost= new HttpPost(url); StringEntity se = new StringEntity(""); se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded")); httppost.setEntity(se);

Pero eso no funciona y no puedo encontrar la solución en ningún lado.

Aclamaciones


nameValuePairs : nameValuePairs

Alternativa: use la volley library

El código completo para la llamada, para quien lo necesite.

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("grant_type", "password")); nameValuePairs.add(new BasicNameValuePair("username", "user1")); nameValuePairs.add(new BasicNameValuePair("password", "password1")); HttpClient httpclient=new DefaultHttpClient(); HttpPost httppost = new HttpPost("www.yourUrl.com"); httppost.setHeader(HTTP.CONTENT_TYPE,"application/x-www-form-urlencoded;charset=UTF-8"); try { httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // Execute HTTP Post Request try { HttpResponse response = httpclient.execute(httppost); Log.d("Response:" , response.toString()); } catch (IOException e) { e.printStackTrace(); }