Как исправить ошибку 500 Bad Request? [java, android]

Я хочу преобразовать код Swift в код Java для приложения Android. Я попытался использовать «HttpsURLConnection», но это не сработало.

Я не уверен, следует ли мне использовать «метод HttpsURLConnection» или мне следует использовать другой метод.

HttpsURLConnection не удалось.

responseCode: 500 (HttpsURLConnection.getResponseCode())
message2: Bad Request (HttpsURLConnection.getResponseMessage())

Как я могу исправить ошибку 500 Bad Request?

        URL url = new URL("https://***test.herokuapp.com/payment.php");
        HashMap<String, Object> params = new HashMap<>();
        params.put("stripeToken", token);
        params.put("amount", 1500);
        params.put("currency", "jpy");
        params.put("description", "anyone");

        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setRequestMethod("POST");

        int responseCode = conn.getResponseCode(); // responseCode: 500

        if (responseCode == HttpsURLConnection.HTTP_OK) {
            Log.d("Success", String.valueOf(responseCode));
        } else {
            String code = String.valueOf(responseCode);
            String message2 = conn.getResponseMessage(); // message2: Bad Request

        }

в Swift (это работает)

let url = "https://***test.herokuapp.com/payment.php"
    let params: [String : Any] = [
        "stripeToken" : token,
        "amount" : totalAmount,
        "currency" : "jpy",
        "description" : "anyone",

    ]

    let manager = AFHTTPSessionManager().post(url, parameters: params, success: { (operation, responseObject) in
        if let response = responseObject as? [String: String] {
            print(response["status"]! + "________" + response["message"]!)
            ProgressHUD.showSuccess("payment success!!")
        }

    }) { (operation, error) in
        if error != nil {
            print("errorMessage \(error.localizedDescription)")
            ProgressHUD.showError(error.localizedDescription)
            return;
        }
    }

использовать библиотеки типа «дооснащение», «залп». Тебе это легко.

Abhay Koradiya 01.12.2018 05:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
75
1

Ответы 1

Спасибо за совет. Я использую «залп», и это сработало.

    final String urlStr = "https://****.php";
    StringRequest stringRequest = new StringRequest(Request.Method.POST, urlStr,

            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast.makeText(StripeActivity.this,"SuccessToken",Toast.LENGTH_LONG).show();
                }
            },

            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("VolleyErrorHere", error.toString());
                }
            }
    ){

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {

            Map<String, String> params = new HashMap<>();

            params.put("stripeToken", token.getId());
            params.put("amount", "120");
            params.put("currency", "jpy");
            params.put("description", "anyone");

            return params;
        }
    }; // end of string Request

Другие вопросы по теме