我正在尝试将消息(包含英文和中文)发布到 servlet。如果我使用 Java 应用程序发布消息,它运行良好。
public class PostText
{
public final static String HTTP_PORT = "...";
public static void main(String[] args) throws Exception
{
String message = "...";
System.out.println(post(message));
}
public static String post(String message)
{
HttpPost httpRequest = new HttpPost(HTTP_PORT);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("input", message));
try {
httpRequest.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
org.apache.http.HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
String strResult = EntityUtils.toString(httpResponse.getEntity());
return strResult;
} else {
System.out.println(httpResponse.getStatusLine().getStatusCode());
}
} catch (ClientProtocolException e) {
// ...
} catch (UnsupportedEncodingException e) {
} catch (IOException e) {
// ...
}
return null;
}
}
当我在 Android 中使用 HttpPost 时,服务器会收到无法识别的字符,例如“æ¸å大妔。我尝试使用 HttpURLConnection 发布消息,结果还包含无法识别的字符。Java 应用程序中的 HttpClient 和 Android 应用程序中的 HttpClient 有什么区别?这很奇怪。
非常感谢。