Java android HTTP post中的分块蒸汽错误

Java android HTTP post中的分块蒸汽错误,java,php,android,http,post,Java,Php,Android,Http,Post,我正在创建一个android应用程序,它将从存储在web服务器上的MySQL数据库中提取用户数据。我已经阅读了一些关于HTTPPOST的教程,这些教程允许我连接到我开始工作的数据库。但是,我无法处理从php发送的数据 我收到的错误是:org.apache.http.MalformedChunkCodingeException:分块流意外结束 这是我写的代码: String name = username.getText().toString(); //username is a TextVie

我正在创建一个android应用程序,它将从存储在web服务器上的MySQL数据库中提取用户数据。我已经阅读了一些关于HTTPPOST的教程,这些教程允许我连接到我开始工作的数据库。但是,我无法处理从php发送的数据

我收到的错误是:org.apache.http.MalformedChunkCodingeException:分块流意外结束

这是我写的代码:

String name = username.getText().toString();  //username is a TextView field
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);       
    nameValuePairs.add(new BasicNameValuePair("user",name));
    try
    {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(location);
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    }
    catch(Exception e)
    {
        Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
        Log.e("log_tag", "Error in http connection"+e.toString());
    }

    //Convert response to string
    try
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

        sb = new StringBuilder();

        String line = null;

        while ((line = reader.readLine()) != null)
        {
            sb.append(line + "\n");
        }

        is.close();

        result = sb.toString();

        Log.i("log_tag", result);
    }
    catch(Exception e)
    {
        Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
        Log.e("log_tag", e.toString());
    }
String name=username.getText().toString()//用户名是一个文本视图字段
ArrayList nameValuePairs=新的ArrayList(1);
添加(新的BasicNameValuePair(“用户”,名称));
尝试
{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(位置);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
HttpEntity=response.getEntity();
is=entity.getContent();
}
捕获(例外e)
{
Toast.makeText(getBaseContext(),e.toString(),Toast.LENGTH_LONG).show();
e(“Log_标记”,“http连接错误”+e.toString());
}
//将响应转换为字符串
尝试
{
BufferedReader=新的BufferedReader(新的InputStreamReader(即“UTF-8”));
sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null)
{
sb.追加(第+行“\n”);
}
is.close();
结果=sb.toString();
Log.i(“日志标签”,结果);
}
捕获(例外e)
{
Toast.makeText(getBaseContext(),e.toString(),Toast.LENGTH_LONG).show();
Log.e(“Log_标记”,e.toString());
}
错误似乎出现在将响应转换为字符串部分。我已经查找了一些与我收到的错误类似的问题,但是我读到的似乎没有多大帮助,或者我对http客户机编码了解不够……可能是后者。任何帮助都将不胜感激,谢谢

以下是PHP:

<?php

$con = mysqli_connect("/**connection*/");
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT * FROM userNames WHERE user='".$_POST['name']."')";

if ($result == NULL)
{
    die();
}
else
{
    //TODO:get row to java
    $rows = array();
    while($r = mysql_fetch_assoc($result)) 
    {
            $rows[] = $r;
    }
    print json_encode($rows);
    mysql_close();
}
mysqli_close($con);

您是否尝试过不使用指定的UTF-8并让HTTP响应设置编码?@ns47731,我刚刚尝试过,但再次出现相同的错误。您找到解决方案了吗???