KSOAP paketini kullanan iyi bir karmaşık nesne örneği örneği var mı?kSOAP Marshalling yardımına ihtiyaç var
4
A
cevap
4
Bu örnek tamamlanamaz ve tamamlanmamış olsa da, temel fikir kSOAP'a bir XML etiketinin bir nesneye nasıl dönüştürüleceğini (yani readInstance()) ve bir nesneyi bir XML etiketine nasıl çevireceğini bildiren bir sınıfa sahip olmaktır (yani writeInstance()). Eğer SABUN hizmetini çağırmak zaman
public class MarshalBase64File implements Marshal {
public static Class FILE_CLASS = File.class;
public Object readInstance(XmlPullParser parser, String namespace, String name, PropertyInfo expected)
throws IOException, XmlPullParserException {
return Base64.decode(parser.nextText());
}
public void writeInstance(XmlSerializer writer, Object obj) throws IOException {
File file = (File)obj;
int total = (int)file.length();
FileInputStream in = new FileInputStream(file);
byte b[] = new byte[4096];
int pos = 0;
int num = b.length;
if ((pos + num) > total) {
num = total - pos;
}
int len = in.read(b, 0, num);
while ((len != -1) && ((pos + len) < total)) {
writer.text(Base64.encode(b, 0, len, null).toString());
pos += len;
if ((pos + num) > total) {
num = total - pos;
}
len = in.read(b, 0, num);
}
if (len != -1) {
writer.text(Base64.encode(b, 0, len, null).toString());
}
}
public void register(SoapSerializationEnvelope cm) {
cm.addMapping(cm.xsd, "base64Binary", MarshalBase64File.FILE_CLASS, this);
}
}
Daha sonra, sen manevra sınıfına (bu durumda, Dosya nesneler) nesne türünü map edeceğiz. SOAP zarfı, her bağımsız değişkenin nesne türüyle otomatik olarak eşleşecek ve eğer yerleşik bir tür değilse, ilgili marşalörü onu XML'den/XML'ye dönüştürecek şekilde çağırır.
public class MarshalDemo {
public String storeFile(File file) throws IOException, XmlPullParserException {
SoapObject soapObj = new SoapObject("http://www.example.com/ws/service/file/1.0", "storeFile");
soapObj.addProperty("file", file);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
new MarshalBase64File().register(envelope);
envelope.encodingStyle = SoapEnvelope.ENC;
envelope.setOutputSoapObject(soapObj);
HttpTransport ht = new HttpTransport(new URL(server, "/soap/file"));
ht.call("http://www.example.com/ws/service/file/1.0/storeFile", envelope);
String retVal = "";
SoapObject writeResponse = (SoapObject)envelope.bodyIn;
Object obj = writeResponse.getProperty("statusString");
if (obj instanceof SoapPrimitive) {
SoapPrimitive statusString = (SoapPrimitive)obj;
String content = statusString.toString();
retVal = content;
}
return retVal;
}
}
Bu durumda, File nesnelerini düzenlemek için Base64 kodlamasını kullanıyorum.
İlgili konular
- 1. Python 3 yardımına ihtiyaç var
- 2. AIDL eğiticilerine ihtiyaç var
- 3. Kalman filtresine ihtiyaç var
- 4. yardımına ihtiyacım sed komutu
- 5. Temel Yasak. Kullanıcıya ihtiyaç var
- 6. bilinmeyen Dizi boyutunu Marshalling
- 7. jaxb marshalling boş öğeleri atla
- 8. gwt derlemesi yığın belleğe çok ihtiyaç var
- 9. Check perrmision (gps) işlevinin durdurulmasına ihtiyaç var
- 10. CSS Açılır Menüye İhtiyaç Var Tavsiye
- 11. Sekmelerden veri çekmek için makroya ihtiyaç var
- 12. R hata '[<-. Data.frame' ... yedek # ürün var, ihtiyaç var #
- 13. XML'de marshalling yapıldığında isteğe bağlı "ihmal"?
- 14. Android Studio'da KSOAP kütüphanesini entegre etmenin doğru yolu nedir?
- 15. Birden çok maxdates-oracle sql geliştiricisine ihtiyaç var 4.0.2
- 16. Yükleme için Yönetici'ye ihtiyaç duymayan Python IDE var mı?
- 17. MVC3 küreselleşme: model bağlamadan önce global filtreye ihtiyaç var
- 18. JAVA için Sigar API'si (bir kılavuza ihtiyaç var)
- 19. OOP'da Polimorfizm'e ihtiyaç nedir?
- 20. Toplu ihtiyaç gerektiren uygulamalar için Webpack'in alternatifi
- 21. SQL-Regexp yardımına ihtiyacınız var: Büyük harflerden önce küçük harf karakterini bulma char
- 22. Bir ortalama ve sıralama yöntemi çıktılamak için tarayıcı sınıfını kullanarak Java dizisi yardımına ihtiyacınız var
- 23. JUnit testi için marshalling yaparken JAXBException nasıl zorlanır?
- 24. JSON marshalling/unmarshalling aynı yapıya farklı JSON biçiminde mi gidiyor?
- 25. Edmx Primary_Key'e mi ihtiyaç duyuyor?
- 26. Marshalling enum XML kullanarak JAXB içine nitelikleri ve JAXWS Açıklamalar
- 27. Bir DVCS önerisine ihtiyaç var: git-p4, hg Perfarce veya başka bir şey mi var?
- 28. C++: Birbirine ihtiyaç duyan iki sınıf
- 29. , AES şifre çözme örneğine ihtiyaç duyar
- 30. Webpack dinamik ihtiyaç duyulan yükleyicilere gereksinim duymaktadır
Bunun için tam kaynak kodu sağlayabilir misiniz? – Rajapandian
Nice answer +1 @Dan Howard –
arraylist içeren Özel Sınıf için marshal nasıl yazılır? – Umair