Http Post特殊字符未被发送

时间:2015-04-08 06:03:36

标签: android

我使用以下代码将数据发送到我的服务器:

public InputStream getStreamFromConnection(String url, List<NameValuePair> params) throws ClientProtocolException, IOException {
    if(ConnectionDetector.isConnectedToInternet(this.context)) {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();

        return httpEntity.getContent();
    } else {
        return null;
    }
}

当我现在在我的参数中有一条看起来像这样的信息时:

The leadership earned 1000$ during the last years.

服务器收到:

The leadership earned 1000

所有消息都是在任何特殊字符的索引处精确切割的。 甚至更多。如果somone写了一条微笑的消息,如:

:)

这到达服务器

??

如何将特殊字符和smielies发送到服务器?

2 个答案:

答案 0 :(得分:1)

听起来您只需要在使用它执行请求之前对URL进行编码。 尝试对您的网址进行编码,如下所示:

String encodedUrl = URLEncodedUtils.format(urlWithParameters, "utf-8");

答案 1 :(得分:0)

你有\\这个特殊字符吗? 因为没有它,服务器就不会理解它。

(抱歉,由于声誉,我无法发表评论)