مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mohammad_zf

عضویت از 1394/12/08

خطا در ارسال پارامتر به Web API با Volley

  • دوشنبه 7 اسفند 1396
  • 11:01
تشکر میکنم

با سلام.

یک مشکلی خوردم یک هفتس درگیرم کرده ممنون میشم کسی اگر میتونه راهنماییم کنه...

یک WebAPi  دارم که یک تابع به اسم  Check_IMEI که دارای دو پارامتر IMEI و Phone_model از نوع String  است.

تو اندروید هم با کتابخانه Volley  کار میکنم برای GET و POST یک مشکلی خوردم زمانی که request میخواد اجرا بشه خطا میخوره و به Errorlistener میره...

Debug کردم و فهمیدم زمانی که داخل Value پارامتری که ارسال میکنم اگر فضای خالی وجود داشته باشه ( چه اول و اخر ،چه وسط Value)  درخواست POST ارسال نمیشه.

درصورتی که وقتی با نرم افزار POSTMAN دقیقا همین URL کپی کردم و با فضا های خالی داخل Value Parametr اجرا میکنم و جواب بر میگرده و مشکلی نداره و فهمیدم اصلا مشکل سمت Web API نیست...

از تمام بخش ها عکس گذاشتم ممنون میشم کمک کنید یک هفتش پروژم استاپ خورده نمیدونم چطور حلش کنم...

این هم کدی که داخل جاوا استفاده کردم

private void Check_IMEI() {

        String name_tabe = "Check_IMEI";
        String parametr1 = "IMEI=" +"11d  00".trim();
        String parametr2 = "Phone_model=" + "Apdd  ple".trim();
        String URL = "http://192.168.43.78:1010/api/CRM/" + name_tabe + "?" + parametr1.toString() + "&" + parametr2.toString();

        Response.Listener<String> listener_IMEI = new Response.Listener<String>()
        {
            @Override
            public void onResponse(String response_IMEI)
            {
                if (response_IMEI.isEmpty() ) {
                }
                else{
                    Toast.makeText(getApplicationContext(),response_IMEI , Toast.LENGTH_SHORT).show();

                }
            }
        };

        Response.ErrorListener errorListener = new Response.ErrorListener()
        {
            @Override
            public void onErrorResponse(VolleyError error)
            {
                Toast.makeText(getApplicationContext(), "خطا در انجام عملیات ، لطفا دسترسی به اینترنت را بررسی فرمایید", Toast.LENGTH_SHORT).show();
            }
        };

        StringRequest request_IMEI = new StringRequest(Request.Method.POST, URL,listener_IMEI,errorListener){};
        AppController.getInstance().addToRequestQueue(request_IMEI);

    }

و اینم کد Web API

 public string Check_IMEI(string IMEI, string Phone_model)
        {
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand("NEW_SelectQuery_IMEI", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@IMEI_number", SqlDbType.NVarChar).Value = IMEI;
            con.Open();

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);

            if (dt.Rows.Count > 0)
            {
                con.Close();
                return "1";
            }
            else
            {
                DataTable dt_insert = new DataTable();
                SqlCommand cmd_insert = new SqlCommand("NEW_InsertQuery_IMEI", con);
                cmd_insert.CommandType = CommandType.StoredProcedure;
                cmd_insert.Parameters.Add("@IMEI_number", SqlDbType.NVarChar).Value = IMEI;
                cmd_insert.Parameters.Add("@Phone_model", SqlDbType.NVarChar).Value = Phone_model;
                cmd_insert.ExecuteNonQuery();
                con.Close();
                return "1";
            }
        }

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

mohammad_zf

عضویت از 1394/12/08

  • چهارشنبه 16 اسفند 1396
  • 15:52

کسی نظری نداره ؟؟؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)