رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

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


پست های پیشنهاد شده

سلام

من در برنامه اندروید یک وب سرویس را توسط 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 چک کردید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 1 ماه بعد...

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

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط VahidNZ
      با سلام خدمت همه دوستان و اساتید

      من یه برنامه دارم که با استفاده از کتابخانه Volley یکسری textview و imageview و به نمایش در میارم 
      الان نیاز دارم یک ستون به دیتابیس اضافه کنم ولینک ویدئو قرار بدم و با استفاده از Videoview نمایش بدم 

      ولی متاسفانه هرچی آموزش میبینم مخصوص استفاده کردن به صورت مشخص از یک URL و یا استفاده داخلی خود گوشی هست 

      اگر ممکن هست راهنمایی بفرمایید که مقادیر JSON که میگیرم و برای ویدئو به چه صورتی باید پیاده سازی کنم 

      با تشکر
    • توسط 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; } }  
  • فایل

×
×
  • اضافه کردن...