Tôi đã tạo ứng dụng Android cho phép bạn đăng tên trên trang web mặc dù biểu mẫu gửi yêu cầu POST http đến trang web. Vấn đề là 90% khách hàng của tôi là người Thụy Điển và yêu cầu POST dường như cắt nhỏ mọi thứ sau một ký tự đặc biệt trong một chuỗi, bao gồm cả ký tự đặc biệt.Các ký tự đặc biệt biến mất trong yêu cầu POST từ điện thoại Android
Vì vậy, họ Thụy Điển "Börjesson", trở thành "B".
mã bưu điện yêu cầu của tôi:
public static String execRequest(String url, Map<String, String> params)
{
try {
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
HttpPost httpPost = null;
HttpGet httpGet = null;
if(params == null || params.size() == 0) {
httpGet = new HttpGet(url);
httpGet.setHeader("Accept-Encoding", "UTF-8");
}
else {
httpPost = new HttpPost(url);
httpPost.setHeader("Accept-Encoding", "UTF-8");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
for(String key: params.keySet()) {
nameValuePairs.add(new BasicNameValuePair(key, params.get(key)));
}
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
}
HttpResponse httpResponse = (HttpResponse)defaultHttpClient.execute(httpPost == null ? httpGet : httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
if(null != httpEntity) {
InputStream inputStream = httpEntity.getContent();
Header contentEncoding = httpResponse.getFirstHeader("Content-Encoding");
if(contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("UTF-8")) {
inputStream = new GZIPInputStream(inputStream);
}
String responseString = convertStreamToString(inputStream);
inputStream.close();
return responseString;
}
}
catch(Throwable t) {
t.printStackTrace();
}
return null;
}
Vì vậy, bất cứ lời khuyên về những gì tôi đang làm sai?
Cảm ơn trước!
bạn đã cố gắng 'httpPost.setEntity (UrlEncodedFormEntity mới (nameValuePairs), "utf-8"); ' – Selvin
tôi không thể tìm thấy bất kỳ hàm có tham số mà ... – Mockarutan
chết tiệt xấu của tôi không setEntity bat UrlEncodedXXX constructor 'httpPost.setEntity (new UrlEncodedFormEntity (nameValuePairs," utf-8 "));' – Selvin