Python向Java OkHttp发送Android的Python请求

问题描述 投票:0回答:1

我有以下代码可在Python中完美运行:

login_data = {'identifier': '[email protected]', 'password': 'Password'}

url = "https://www.duolingo.com/2017-06-30/login?fields="
p = requests.post(url, data = json.dumps(login_data))

if p.status_code is 200:
    print("SUCCESS")
else:
    print("ERROR")

我想使用OkHttp将其转换为Java,以便能够在Android Studio中实现。我已经编写了以下代码,但是给出Status Code: 422,根据Google的说法,它表示“不可处理的实体:

OkHttpClient client = new OkHttpClient();

String url = "https://www.duolingo.com/2017-06-30/login?fields=";
String login_data = "{\"identifier\": \"[email protected]\", \"password\": \"Password\"";
RequestBody body = RequestBody.create(login_data, MediaType.parse("application/json"));

    Request postRequest = new Request.Builder()
            .url(url)
            .post(body)
            .build();

    client.newCall(postRequest).enqueue(new Callback()
    {
        @Override
        public void onFailure(@NotNull Call call, @NotNull IOException e)
        {
            Log.i("TAG", "ERROR - " + e.getMessage());
        }

        @Override
        public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException
        {
            if (response.isSuccessful())
            {
                Log.i("LOG", "SUCCESS - " + response.body().string());
            }
            else
            {
                Log.i("LOG", "FAILED. Status Code: " + String.valueOf(response.code));
            }
        }
    });

感谢所有帮助!

android python-requests okhttp
1个回答
0
投票

在Java实现中,请求正文中缺少右括号。

"{\"identifier\": \"[email protected]\", \"password\": \"Password\"}"

© www.soinside.com 2019 - 2024. All rights reserved.