`
randor
  • 浏览: 12570 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

HttpPost发送JSON数据中文乱码问题。

阅读更多
Android移动终端通过 HttpPost发送JSON数据时出现中文乱码问题的解决方案。通常都用UTF-8 编码。

1、客户端 postData为JSON数据JSONObject.
注意点:发送和接收时转码。
public static String httpPostData(String uri, int requestTimeOut, String postData) {
String retStr = "failure";
int tmout = 5;
if (requestTimeOut > 0){
tmout = requestTimeOut;
}
try {
HttpParams httpParams = new BasicHttpParams();
httpParams.setParameter("charset", "UTF-8");
    HttpConnectionParams.setConnectionTimeout(httpParams,tmout * 1000);  //毫秒
    HttpConnectionParams.setSoTimeout(httpParams, tmout * 1000);    
HttpClient httpClient = new DefaultHttpClient(httpParams);

HttpPost httpPost = new HttpPost(uri);
httpPost.setEntity(new StringEntity(postData.toString(),"UTF-8"));
HttpResponse response;
response = httpClient.execute(httpPost);
//检验状态码,如果成功接收数据
int code = response.getStatusLine().getStatusCode();
if (code == 200) {
retStr = EntityUtils.toString(response.getEntity(),"UTF-8");
}
} catch (ClientProtocolException e) {
} catch (IOException e) {
} catch (Exception e) {
}
System.out.println("httpPostData() return:" + retStr);
return retStr;
}



2、WEB SERVLET
我用的是Spring3.1框架
注意点:BufferedReader取数时一定要转码。环境不同你可以试着转成GBK码试试。
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, ServiceException {
    request.setCharacterEncoding("UTF-8"); //避免中文乱码 POST方式提交 
    response.setContentType("text/json;charset=UTF-8");
        String responseData="[{}]"; //JSONArray String
            // 读取请求JSON数据       
        BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
        String line = "";
        StringBuilder sbf = new StringBuilder();
        while((line = br.readLine())!=null){
            sbf.append(line);
        }
        String postData = sbf.toString();
        if(postData==null || "".equals(postData)){
        postData = "{}"; //JSON数据
         }
        System.out.println("postData:" + postData);
   }

共同学习,共同进步,不对之处还望指正。
分享到:
评论
1 楼 zz4165456zz 2013-11-06  
非常感谢,解决了我的问题。

相关推荐

    Java Http请求传json数据乱码问题的解决

    在Java进行HTTP请求时,通常会遇到数据传输出现乱码的问题,尤其是在使用JSON格式传输数据,且数据中包含中文字符时更为常见。在HTTP协议中,字符编码的正确处理对于数据的正确传输至关重要。以下将详细介绍在Java中...

    C#接收json数据后中文乱码解决方法

    C#接收Json格式数据,中文出现乱码解决方法

    libcurl 以JSON模式post

    `CURLOPT_POSTFIELDS`用于设置POST的数据,而`Content-Type: application/json`的HTTP头则表明我们正在发送JSON数据。 执行`curl_easy_perform`会发送请求,并在遇到错误时返回非零值。最后,我们清理libcurl资源和...

    解决Ajax加载JSon数据中文乱码问题

    在本文中,我们将深入探讨如何解决Ajax加载JSON数据时出现的中文乱码问题。这个问题通常发生在前后端交互过程中,特别是当使用zTree等组件进行异步数据加载时。本文将通过一个具体的例子来阐述问题所在,并提供解决...

    C++使用CURL库POST请求向服务器发送JSON数据-附件资源

    C++使用CURL库POST请求向服务器发送JSON数据-附件资源

    c#post multipart/form-data和JSON数据

    当涉及到网络通信,比如发送数据到服务器,C#提供了多种方式,其中包括POST请求。本篇文章将详细探讨如何在C#中处理`multipart/form-data`和JSON格式的数据。 `multipart/form-data`是HTTP协议中一种用于上传文件或...

    httpclient模拟post请求json封装表单数据的实现方法

    我们使用 `new StringEntity(jsonParam.toString(), "utf-8")` 创建了一个新的 `StringEntity` 实例,并指定字符编码为 UTF-8,以避免中文乱码问题。 设置 `StringEntity` 的内容类型为 `application/json`,这是...

    提交数据到服务器中文乱码处理

    在IT行业中,中文乱码是一个常见的问题,尤其是在数据交换、存储和显示的过程中。当涉及到将中文数据提交到服务器时,由于编码格式不匹配或者处理不当,可能会导致接收方接收到的数据显示为乱码。要解决这个问题,...

    Okhttp框架post json封装

    OkhttpUtils.postJson("http://your-api-url.com", "{\"key\":\"value\"}", new Callback() { @Override public void onFailure(Call call, IOException e) { // 处理请求失败的情况 } @Override public void...

    Ajax中文乱码问题解决方案

    然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...

    struts2中通过json传值解决乱码问题的实现方法

    例如,如果前端页面使用UTF-8编码发送数据,而后端服务器或Java程序使用ISO-8859-1编码接收,就会在显示时出现乱码。 为了解决这一问题,可以在前端使用JavaScript的encodeURI函数对需要发送的数据进行编码。...

    模拟http请求发送接收数据

    在发送数据时,需确保客户端和服务器之间的一致性,否则可能会导致乱码问题。 模拟HTTP请求工具有很多,例如Python的requests库、JavaScript的axios、curl命令行工具等。以Python的requests为例,你可以通过以下...

    解决Python发送Http请求时,中文乱码的问题

    ### 解决Python发送HTTP请求时中文乱码的问题 在使用Python进行网络编程的过程中,经常会遇到向服务器发送HTTP请求的需求。特别是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。本文将详细介绍如何解决这...

    Ajax中文乱码问题解决方法

    然而,在处理中文字符时,Ajax可能会遇到乱码问题,这通常与字符编码设置不正确有关。本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果...

    Android中post请求传递json数据给服务端的实例

    在本实例中,我们使用了 StringEntity 来封装 JSON 数据,并将其设置为 UTF-8 编码,以防止中文乱码。 知识点4:AsyncHttpClient 库的使用 在本实例中,我们使用了 AsyncHttpClient 库来发送 POST 请求。...

    magicajax0.3.0解决中文乱码

    《解决magicajax0.3.0中的中文乱码问题》 在进行Web开发时,我们经常需要使用Ajax技术来实现页面的异步更新,而MagicAjax作为一款强大的Ajax库,为开发者提供了便捷的接口和丰富的功能。然而,在处理中文字符时,...

    ajax提交,后台中文乱码解决

    在IT领域,尤其是在Web开发中,处理中文字符时经常遇到的一个问题是中文乱码。这个问题尤其在使用Ajax进行异步数据提交时更为突出。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,...

    Delphi XE + IdHTTPServer + utf8转换 + json解析(源码+测试可用)

    通过这个组件,开发者能够构建自己的Web服务,响应不同类型的HTTP请求,例如GET、POST等,并返回相应的数据。 UTF-8是一种广泛使用的字符编码标准,支持Unicode字符集。在Delphi中处理网络传输的数据时,通常需要...

    ajax提交中文乱码解决方法

    当通过AJAX向服务器发送含有中文的数据时,如果编码方式设置不当,就可能导致服务器端接收到的数据变成乱码。这主要是因为客户端和服务器端使用的字符集不一致导致的。 **具体来说:** 1. **客户端编码**:前端...

Global site tag (gtag.js) - Google Analytics