参数中的空格会导致android中的错误

参数中的空格会导致android中的错误,android,api,android-studio,android-layout,android-fragments,Android,Api,Android Studio,Android Layout,Android Fragments,我正在使用一个Web API集成到我的应用程序中。我也使用了.net服务器API,但问题是,当我用URL传递参数时,如果API的任何参数包含空间,它就会抛出一个错误。当我传递字符串值时,由于空间的原因,它会抛出错误,如果我删除了空间,那么一切都是完美的。请帮忙 private void getEnterLoadDetail() { pBar.setVisibility(View.VISIBLE); pref = getContext().getSharedPreference

我正在使用一个Web API集成到我的应用程序中。我也使用了.net服务器API,但问题是,当我用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);
}
private void getEnterLoadDetail(){
pBar.setVisibility(View.VISIBLE);
pref=getContext().getSharedReferences(pref_名称,Context.MODE_PRIVATE);
字符串userName=pref.getString(KEY_USER_NAME,“userName”);
Log.e(“标签”、“用户名”+用户名);
tripId=txtTripId.getText().toString();
materialCode=txtMaterialCode.getText().toString();
vendorCode=txtVendorCode.getText().toString();
字符串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+”&Comments=“+Comments+”;
StringRequest StringRequest=新的StringRequest(Request.Method.POST,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Log.e(“response”,response.toString());
试一试{
if(response.contains(“success”)){
Toast.makeText(getActivity(),R.string.load_detail_submitted,Toast.LENGTH_LONG).show();
edtVehicleNo.setText(“”);
edtRate.setText(“”);
注:setText(“”);
txtMaterialCode.setText(“材料代码”);
txtVendorCode.setText(“供应商代码”);
spinnerVendorName.setSelection(0);
喷丝头材料名称。设置选择(0);
txtTripId.setText(“跳闸Id”);
}
}捕获(例外e){
e、 printStackTrace();
Activity=getActivity();
if(activity!=null&&isAdded()){
Toast.makeText(活动,R.string.some_错误,Toast.LENGTH_LONG).show();
}
}
pBar.setVisibility(View.GONE);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
e(“错误:+Error.getMessage());
Activity=getActivity();
if(activity!=null&&isAdded()){
Toast.makeText(活动,R.string.some_错误,Toast.LENGTH_LONG).show();
pBar.setVisibility(View.GONE);
}
}
});
RequestQueue RequestQueue=Volley.newRequestQueue(getActivity());
//将字符串请求添加到请求队列
添加(stringRequest);
}
--------materialname和所有其他变量都包含空格,API抛出错误

试试看

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");

Process:avary.com.avery,PID:29726 java.util.MissingFormatArgumentException:Format说明符:3A在java.util.Formatter.getArgument(Formatter.java:1111)在java.util.Formatter.doFormat(Formatter.java:1076)在java.util.Formatter.Formatter(Formatter.java:1042)处