从Android到java服务器(jetty)的httpPost请求:参数丢失?

从Android到java服务器(jetty)的httpPost请求:参数丢失?,java,android,http,jetty,http-post,Java,Android,Http,Jetty,Http Post,我发送了一个相当简单的httpPost请求,如下所示。(它是德语的,但您可以看看HTTP POST示例)。这就是我得到的: HttpPost httpPost = new HttpPost(params[0]); HttpParams httpParams = new BasicHttpParams(); httpParams.setParameter("title", "message"); //... setting some other parameters like http tim

我发送了一个相当简单的httpPost请求,如下所示。(它是德语的,但您可以看看HTTP POST示例)。这就是我得到的:

HttpPost httpPost = new HttpPost(params[0]);

HttpParams httpParams = new BasicHttpParams();
httpParams.setParameter("title", "message");

//... setting some other parameters like http timeout, which I checked and which work 

httpPost.setParams(httpParams);

//HttpEntity myEntity = new StringEntity(messageBody);
//httpPost.setEntity(myEntity);

response = httpClient.execute(httpPost);
(被评论的部分我也尝试过,但没有结果)

服务器代码如下所示:

public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
    response.setContentType("text/plain;charset=utf-8");
    if (target.contentEquals("/postKdm"))
    {
        String title = request.getParameter("title");

        InputStream instream = request.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null)
        {
            sb.append(line);
        }

        System.out.println(title);

        response.setStatus(HttpServletResponse.SC_OK);
    }
}
其中字符串标题和InputStream都为null/空。我已经调试并检查了请求对象,但找不到任何与我的参数类似的内容

此外,我还发现了一些与我的问题类似的问题,但答案对我帮助不大,因为我不使用ApacheCamel,因此无法使用Exchange类

哦,类似的GET请求工作得非常好,但我在这里被卡住了/

我将感谢任何帮助

亲切问候,,
水母

我仍然不知道为什么“setParams”不起作用。但我使用Wireshark检查我的传出请求,之后我发现了一个使用HttpEntity的解决方案(正如上面评论的部分所示):

我发现的服务器端,当然,只是我将字节缓冲区替换为字符缓冲区,如:

HttpEntity myEntity = new StringEntity(message);
httpPost.setEntity(myEntity);

response = httpClient.execute(httpPost);
private String getInputString() throws IOException
{
    InputStream is = request.getInputStream();
    if (is != null)
    {

        Writer writer = new StringWriter();

        char[] buffer = new char[request.getContentLength()];

        try
        {
            Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));

            int n;
            while ((n = reader.read(buffer)) != -1)
            {
                writer.write(buffer, 0, n);
            }
        }
        finally
        {
            is.close();
        }
        return writer.toString();
    }
    else
    {
        return "";
    }
}