代码之家  ›  专栏  ›  技术社区  ›  kou

如何修复500个错误请求错误?[ Java,Android ]

  •  -2
  • kou  · 技术社区  · 6 年前

    我想将Swift代码转换成一个Android应用程序的Java代码。我试图使用“httpsurlconnection”,但它不起作用。

    我不确定是应该使用“httpsurlconnection方法”还是应该使用其他方法。

    httpsurlconnection失败。

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

    如何解决500个错误请求错误?

            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
    
            }
    

    在斯威夫特(它工作)

    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;
            }
        }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   kou    6 年前

    谢谢你的建议。 我用了“截击”而且很有效。

        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