PDA

View Full Version : دریافت دیتاتیبل از وب سرویس



relax_cp
پنج شنبه 02 شهریور 1391, 11:26 صبح
با سلام
دوستان من به وب سرویس متصل میشم که یک دیتاتیبل و یک استرینگ خروجی برمیگردونه.
پارامتر اولی هم که بر میگردونه دیتاتیبل هست و بعدش استرینگ رو باید بر گردونه.
مشکل اینه که بعد از اینکه اطلاعات رو از وب سرویس دریافت کرد حالا میخوام اون اطلاعات رو که شامل یک دیتاتیبل با 110 رکورد و یک متن هست رو بردارم نمیشه.
یک کلاس در برنامه دارم که ساختار دیتاتیبل رو پیاده کرده و برای serialize کردن دیتاتیبل استفاده شده ولی مسئله اینجاست که اطلاعات میاد ولی به شکل در هم. یک عکس از شکل اطلاعاتی که داره میاد براتون میذارم.
91722
عکس زیر حاصل این خط کد من هست:


e1.setText( String.valueOf(response.getProperty(1)) );


حالا میخوام بدونم چطور میشه اطلاعات دیتاتیبل رو برداشت کنم.

dehghanimeh
جمعه 03 شهریور 1391, 16:54 عصر
سلام
منظورتون از (یک دیتاتیبل و یک استرینگ خروجی برمیگردونه) چیه؟
وب سرویس شما xml برمیگردونه یا json ?
وب سرویس شما با چه زبانی طراحی شده؟
آیا به سورس وب سرویس دسترسی دارید؟
به نظر میاد که با php پیاده شده و json خروجی می ده
موفق باشید

relax_cp
جمعه 03 شهریور 1391, 22:12 عصر
سلام
منظورتون از (یک دیتاتیبل و یک استرینگ خروجی برمیگردونه) چیه؟
وب سرویس شما xml برمیگردونه یا json ?
وب سرویس شما با چه زبانی طراحی شده؟
آیا به سورس وب سرویس دسترسی دارید؟
به نظر میاد که با php پیاده شده و json خروجی می ده
موفق باشید

دیتاتیبل: datatable = جدول داده ها
استرینگ: String = رشته
وب سرویس من دیتاتیبل بر میگردونه.
زبان وب سرویس من C#.net 2008 و .net 3.5 هست.
بله خودم وب سرویس رو نوشتم
با سی شارپ دات نت نوشته شده .
شکل کلی کد به این شکل هست:



[WebService]
Public Datatable assansor(out String error)
{
// اینجا هم کد نوشته میشه و در نهایت یک پارامتر error از نوع استرینگ و یک پارامتر از نوع جدول ارسال میکنه
}

relax_cp
جمعه 03 شهریور 1391, 22:16 عصر
این هم یک بخش از کد صفحه وب سرویس بعد از اینکه در محیط local روی لینکش کلیک میکنیم.



<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<AsansorResponse xmlns="http://tempurim.org/">
<AsansorResult>xmlxml</AsansorResult>
<erors>string</erors>
</AsansorResponse>
</soap12:Body>
</soap12:Envelope>

dehghanimeh
یک شنبه 05 شهریور 1391, 19:41 عصر
سلام
مشکلات برنامه شما به نظر من
1- خروجی datatable همراه با schema جدول ارسال میشه و شما نمیتونید در اندروید اونو به راحتی پردازش کنید. باید آرایه ای از یک سری کلاس را خروجی بدید.
2 - شما امکان استفاده از پارامترهای ورودی و خروجی را ندارید.(out String error)

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


SoapObject response = (SoapObject)envelope.getResponse();
Entity[] categories = new Entity[response.getPropertyCount()];
for (int i = 0; i < categories.length; i++) {
SoapObject pii = (SoapObject)response.getProperty(i);
Entity object = new Entity();
object.setID( pii.getProperty(0).toString());
object.setName( pii.getProperty(1).toString());
categories[i] = object;
}
return categories;



موفق باشید