Java/Flask岗位需求

2024-09-29 22:01:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从我的android应用程序发送一些数据到运行Flask代码的服务器。我使用HTTPUrlConnection向Flask服务器发出POST请求。我已经能够使用Flask创建一个restapi,但是我不确定为什么Java到Python的通信不起作用。我从服务器上得到了以下错误"POST /signUp HTTP/1.1" 400 -,我无法从中得到什么好处(在Flask中启用了调试)。我应该如何将JSON数据传递到我的服务器,我的Flask代码应该如何解释这一点?在

我的Java代码是:

        URL url = new URL(url);
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setDoInput(true);
        connection.setDoOutput(true);

        OutputStream stream = connection.getOutputStream();
        writer = new DataOutputStream(stream);

        Log.d("WARN", getQuery(params)); 
        // The LogCat prints out data like: 
        // ID:test,Email:test@gmail.com,Pwd:test

        writer.writeBytes(getQuery(params));
        writer.flush();
        writer.close();
        stream.close();

// getQuery function aims to create a JSON string to send to the Flask server.
private String getQuery(List<Pair<String, String>> params)
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (Pair<String, String> pair : params)
    {
        if (first)
            first = false;
        else
            result.append(",");

        result.append(pair.first);
        result.append(":");
        result.append(pair.second);
    }

    return result.toString();
}

我的服务器端代码是:

^{pr2}$

Tags: 代码服务器trueurlflasknewstringparams
1条回答
网友
1楼 · 发布于 2024-09-29 22:01:09
// The LogCat prints out data like: 
// ID:test,Email:test@gmail.com,Pwd:test

这不是一个JSON字符串,因此在服务器端flask无法反序列化它。您的JSON应该如下所示:

^{2}$

顺便说一句,在生成JSON字符串时,您可以使用一些更高级的fluent API-s来生成JSON,比如jackson或org.json API。在

相关问题 更多 >

    热门问题