ikhatami

مشکل سایز اطلاعات دریافتی از وب سرویس در اپ اندروید

5 ارسال در این موضوع قرار دارد

سلام

من در برنامه اندروید یک وب سرویس را توسط ksoap صدا می زنم و مقدار برگشتی از وب سرویس را استفاده می کنم در موارد خاص که مقدار برگشتی از حجم خاصی (اینطور که چک کردم از 310 کاراکتر) بیشتر شود خطا داده و برنامه متوفق میشود چطور مشکل را رفع کنم ؟؟

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 ساعت قبل، ikhatami گفته است :

سلام

من در برنامه اندروید یک وب سرویس را توسط ksoap صدا می زنم و مقدار برگشتی از وب سرویس را استفاده می کنم در موارد خاص که مقدار برگشتی از حجم خاصی (اینطور که چک کردم از 310 کاراکتر) بیشتر شود خطا داده و برنامه متوفق میشود چطور مشکل را رفع کنم ؟؟

 

سلام...

لطفا نمونه کد و خطا رو بذارید تا بهتر بشه راهنمایی کرد...

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در واقع سورس من لیست استانها را از وب سرویس درخواست می کند و در لیست نمایش می دهد 
وب سرویس سالم است و در جاهای دیگر و برای برنامه های غیر اندرویدی درست کارمی کند ولی در برنامه های اندرویدی هیچ برگشتی نشان نمی دهد 
کافی است استانهای برگشتی را کمتر (مثلا به جای 24 استان، 19 استان) برگردانیم در برنامه اندروید درست نشان می دهد ولی در حالتی که تمام استانها را برگردانیم null بر می گرداند 
private class AsyncCall_list_ostan extends AsyncTask<String, Void, Void> {

    @Override
    protected Void doInBackground(String... params) {
        Getlist_ostan();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        if (result1 != null && result1.length() >= 13)
            if (!result1.substring(0, 7).equals("errors:")) {
                result1 = result1.substring(10) + "*";
                String[] alist = new String[result1.length() - result1.replace("*", "").length()];
                int i = 0;
                while (result1.length() >= 3) {
                    String Ostan = result1.substring(0, result1.indexOf("*"));
                    alist[i++] = Ostan;
                    result1 = result1.substring(result1.indexOf("*") + 1);
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(), R.layout.spinner_item, alist);
                Spinner dynamicSpinner = (Spinner) findViewById(R.id.spinner_ostan);
                dynamicSpinner.setAdapter(adapter);
            } else
                Toast.makeText(getApplicationContext(), result1.substring(8), Toast.LENGTH_LONG).show();
        else
            Toast.makeText(getApplicationContext(), R.string.Error_connect, Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onPreExecute() {
        Toast.makeText(getApplicationContext(), R.string.wait_connect, Toast.LENGTH_LONG).show();
    }
}

public void Getlist_ostan() {
    //Create request
    SoapObject request = new SoapObject(GlobalClass.NAMESPACE, "list_ostan");
    //Create envelope
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    //Set output SOAP object
    envelope.setOutputSoapObject(request);

    HttpTransportSE androidHttpTransport = new HttpTransportSE(GlobalClass.URL);
    try {
        androidHttpTransport.setXmlVersionTag("<!--?xml version=\"1.0\" encoding=\"UTF-8\" ?-->");
        androidHttpTransport.call("urn:Services#list_ostan", envelope);
        if (envelope.getResponse() != null && !envelope.getResponse().equals("")) {
            result1 = envelope.getResponse().toString();
        } else {
            result1 = null;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 ساعت قبل، ikhatami گفته است :

در واقع سورس من لیست استانها را از وب سرویس درخواست می کند و در لیست نمایش می دهد 
وب سرویس سالم است و در جاهای دیگر و برای برنامه های غیر اندرویدی درست کارمی کند ولی در برنامه های اندرویدی هیچ برگشتی نشان نمی دهد 
کافی است استانهای برگشتی را کمتر (مثلا به جای 24 استان، 19 استان) برگردانیم در برنامه اندروید درست نشان می دهد ولی در حالتی که تمام استانها را برگردانیم null بر می گرداند 

private class AsyncCall_list_ostan extends AsyncTask<String, Void, Void> {

    @Override
    protected Void doInBackground(String... params) {
        Getlist_ostan();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        if (result1 != null && result1.length() >= 13)
            if (!result1.substring(0, 7).equals("errors:")) {
                result1 = result1.substring(10) + "*";
                String[] alist = new String[result1.length() - result1.replace("*", "").length()];
                int i = 0;
                while (result1.length() >= 3) {
                    String Ostan = result1.substring(0, result1.indexOf("*"));
                    alist[i++] = Ostan;
                    result1 = result1.substring(result1.indexOf("*") + 1);
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(), R.layout.spinner_item, alist);
                Spinner dynamicSpinner = (Spinner) findViewById(R.id.spinner_ostan);
                dynamicSpinner.setAdapter(adapter);
            } else
                Toast.makeText(getApplicationContext(), result1.substring(8), Toast.LENGTH_LONG).show();
        else
            Toast.makeText(getApplicationContext(), R.string.Error_connect, Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onPreExecute() {
        Toast.makeText(getApplicationContext(), R.string.wait_connect, Toast.LENGTH_LONG).show();
    }
}

public void Getlist_ostan() {
    //Create request
    SoapObject request = new SoapObject(GlobalClass.NAMESPACE, "list_ostan");
    //Create envelope
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    //Set output SOAP object
    envelope.setOutputSoapObject(request);

    HttpTransportSE androidHttpTransport = new HttpTransportSE(GlobalClass.URL);
    try {
        androidHttpTransport.setXmlVersionTag("<!--?xml version=\"1.0\" encoding=\"UTF-8\" ?-->");
        androidHttpTransport.call("urn:Services#list_ostan", envelope);
        if (envelope.getResponse() != null && !envelope.getResponse().equals("")) {
            result1 = envelope.getResponse().toString();
        } else {
            result1 = null;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

من که مشکلی توی کدها نمیبینم، به نظرم بهتر هست که خروجی وب سرویس به صورت JSON باشه تا راحتتر بتونید ازش استفاده...

با خروجی JSON چک کردید؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوستان عزیز - وبسرویس رایگان استفاده از سیستم ارسال پیام صوتی ( voice message )  در وبسایت navanak.com  قابل استفاده است و میتونین ازش استفاده کنید.موفق و پیروز باشید.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط ikhatami
      سلام
      من یک برنامه اندروید دارم که یک سری ادیت تکست دارم که نام و نام خانوادگی و ... به صورت فارسی وارد میشه از طریق استفاده از ksoap2 و صدازدن یک سرویس روی سرور php می خواهم این اطلاعات در سرور ذخیره بشه ولی وقتی اطلاعات اندروید به وب سرویس ارسال میشه هر جا که فارسی هست میشه ???????
      وب سرویس مشکلی نداره و کار میکنه مشکل سمت برنامه اندروید هست البته سمت اندروید هم برای انگلیسی ها و اعداد مشکلی نیست فقط مشکل فارسی داریم بفرمایید مشکل کجاست
      نمونه برنامه اندروید :
      SoapObject request = new SoapObject(GlobalClass.NAMESPACE, "SaveCustomerInfo"); //Property which holds input parameters PropertyInfo name1 = new PropertyInfo(); name1.setName("Name"); name1.setValue("احمدعلی"); name1.setType(String.class); request.addProperty(name1); //Create envelope SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; //Set output SOAP object envelope.setOutputSoapObject(request); //Create HTTP call object HttpTransportSE androidHttpTransport = new HttpTransportSE(GlobalClass.URL); try { androidHttpTransport.setXmlVersionTag("<!--?xml version=\"1.0\" encoding=\"UTF-8\" ?-->"); androidHttpTransport.call("urn:Services#SaveCustomerInfo", envelope); if (envelope.getResponse() != null && !envelope.getResponse().equals("")) { result2 = envelope.getResponse().toString(); } else { result2 = null; } } catch (Exception e) { e.printStackTrace(); }  
    • توسط alireza123
      سلام
      میخواستم در مورد وب سرویس ها در اندروید اطلاعات بدست آورم و اینکه از کدوم وب سرویس استفاده کنیم بهتره؟
      منبع آموزشی خوب هم برای یادگیری اون ذکر کنید
      با تشکر 
    • توسط اعظم نوری
      بر اساس درخواست های مکرر دوستان برای سورس آماده وب سرویس json، تصمیم گرفتم که یه پروژه آماده با json رو تو انجمن قرار بدم. برای استفاده از این پروژه شما باید تو خط 123 تو MainActivity آدرس URL مورد نظر خودتون رو قرار بدید و فیلدهارو تو کل پروژه تغییر بدید و مشخصات فیلدهای مورد نظر خودتون رو وارد کنید.
      Appjason.zip
       
       
    • توسط soroush_habibi
      سلام به همه.من وقتی می خوام یه متن فارسی رو با استفاده از کلاس زیر بگیرم متن ها به شکل علامت سوال در میاد چطوری مشکل رو برطرف کنم؟
       
      private class BackTask extends AsyncTask<String, Integer, Void> { String text = ""; protected Void doInBackground(String... params) { URL url; try { url = new URL(params[0]); HttpURLConnection con = (HttpURLConnection) url.openConnection(); InputStream is = con.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { text += line; } br.close(); } catch (Exception e) { e.printStackTrace(); } return null; } protected void onPostExecute(Void result) { text2 = text; } }  
    • توسط mohammad_pyn
      [align=right]mohammad_pynامروز, ۰۹:۰۷ قبل از ظهر[/align]
      [align=right]سلام
      دوستان من میخوام واسه اپلیکیشنم امکان ورود اعضا رو بذارم واسه این کار باید یوزر و پسورد رو بصورت استرینگ از طریق کتابخانه volley ارسال کنم که از طریق stringrequest این کار رو میکنم اما واسه دریافت دیگر اطلاعات در صورت لاگین شدن، چون اطلاعات بصورت jsonarray هست نمیشه همزمان این کار رو کرد چکار باید بکنن؟
      مراحل کارم اینطوریه که یوزر و پسوورد رو به یه فایل پی اچ پی ارسال میکنم که اونجا گفتم اگر یوزر و پسوورد درون جدول دیتابیس وجود داشت بقیه اطلاعات جدول رو بصورت json که ارایه هم هست برگردونه.حالا من چجوری اینارو دریافت کنم؟
      امکان ارسال استرینگ و دریافت بصورت استرینک هست و بلدم این کار رو بکنم اما ارسال استرینگ و دریافت jsonarray رو بلد نیستم[/align]

  • دوره آموزشی اندروید آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل