Sending utf8 contents with post method to server in android using HttpClient
14,846
Solution 1
Maybe you should use UTF-8 for the entity:
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
Solution 2
I have worked
public static String sendData(String data) {
String str = null;
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost(serverurl);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("s", data));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(httppost);
str = new Scanner(response.getEntity().getContent(), "UTF-8").useDelimiter("\\A").next();
Log.v("srv response:", str);
} catch (SecurityException e) {
str = "err2";
} catch (IOException error) {
str = "err1.1";
} catch (NullPointerException e) {
str = "err1.2";
}
return str;
}
Author by
moallemi
Updated on July 28, 2022Comments
-
moallemi almost 2 years
this is my sample code, however I used HttpProtocolParams.setContentCharset(params, "utf-8"); im my code but when I send utf-8 data, I receive just "?????" in server side (PHP code)! what is the problem?
HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, "utf-8"); HttpClient httpclient = new DefaultHttpClient(params); httpclient.getParams().setParameter("http.protocol.content-charset", "UTF-8"); HttpPost httppost = new HttpPost("URL_TO_SERVER"); try { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("uname", name.getText().toString())); nameValuePairs.add(new BasicNameValuePair("uemail", email.getText().toString())); nameValuePairs.add(new BasicNameValuePair("udesc", body.getText().toString())); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse hresponse = httpclient.execute(httppost); String response = new Scanner(hresponse.getEntity().getContent(), "UTF-8").useDelimiter("\\A").next(); hresponse.getEntity().consumeContent(); httpclient.getConnectionManager().shutdown(); Log.d("WX", response.toString()); Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block } catch (IOException e) { // TODO Auto-generated catch block }