Пробелы в параметрах приводят к ошибке в Android - PullRequest
0 голосов
/ 18 октября 2018

Я использую веб-API для интеграции в мое приложение.Я использую серверные API .net для того же, но проблема в том, что, когда я передаю параметры с URL, возникает ошибка, если какой-либо параметр API содержит пространство.Поскольку я передаю строковые значения, но это приводит к ошибке только из-за пробела, и если я удаляю пробел, то все идеально.Пожалуйста, помогите !!!

 private void getEnterLoadDetail() {

    pBar.setVisibility(View.VISIBLE);
    pref = getContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);

    String userName = pref.getString(KEY_USER_NAME, "username");
    Log.e("TAG", "USERNAME" + userName);
    tripId = txtTripId.getText().toString();
    materialCode = txtMaterialCode.getText().toString();
    vendorCode = txtVendorCode.getText().toString();
    String url = "http://18.216.239.216:8086/api/Mobile?username="+userName+"&tripid=" + tripId + "&VehicleNo=" + vehicleNo + "&MaterialName=" + materialname + "&MaterialCode=" + materialCode + "&VendorName=" + vendorName + "&VendorCode=" + vendorCode + "&MaterialRate=" + rate + "&Remarks="+remarks+"";


    StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    Log.e("response", response.toString());

                    try {
                        if (response.contains("success")) {
                            Toast.makeText(getActivity(), R.string.load_detail_submitted, Toast.LENGTH_LONG).show();
                            edtVehicleNo.setText("");
                            edtRate.setText("");
                            edtRemarks.setText("");
                            txtMaterialCode.setText("Material Code");
                            txtVendorCode.setText("Vendor Code");
                            spinnerVendorName.setSelection(0);
                            spinnerMaterialName.setSelection(0);
                            txtTripId.setText("Trip Id");
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        Activity activity = getActivity();
                        if (activity != null && isAdded()) {
                            Toast.makeText(activity, R.string.some_error_occured, Toast.LENGTH_LONG).show();

                        }

                    }
                    pBar.setVisibility(View.GONE);
                }


            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: " + error.getMessage());
            Activity activity = getActivity();
            if (activity != null && isAdded()) {
                Toast.makeText(activity, R.string.some_error_occured, Toast.LENGTH_LONG).show();
                pBar.setVisibility(View.GONE);
            }

        }
    });

    RequestQueue requestQueue = Volley.newRequestQueue(getActivity());

    //adding the string request to request queue
    requestQueue.add(stringRequest);
}

-------- materialname и все другие переменные содержат пробелы и ошибку API-бросков.

enter image description here

1 Ответ

0 голосов
/ 18 октября 2018

Попробуйте

String url = "http://18.216.239.216:8086/api/Mobile?username="+userName+"&tripid=" + tripId + "&VehicleNo=" + vehicleNo + "&MaterialName=" + materialname + "&MaterialCode=" + materialCode + "&VendorName=" + vendorName + "&VendorCode=" + vendorCode + "&MaterialRate=" + rate + "&Remarks="+remarks+"";
String convertedUrl = URLEncoder.encode(url, "utf-8");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...