2014-02-12 50 views
1
private final String SOAPACTION="http://www.americanweddinggroup.com/API/PublicJSON/WeddingDetatils"; 
private final String URL="http://www.americanweddinggroup.com/API/PublicJSON.asmx" ; 
private final String NAMESPACE="http://www.americanweddinggroup.com/API/"; 
private final String METHODNAME="WeddingDetatils"; 
<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 

<soap:Body> 
<WeddingDetatils xmlns="http://www.americanweddinggroup.com/API/PublicJSON"> 
    <EventID>string</EventID> 
</WeddingDetatils> 
</soap:Body> 

如何從肥皂

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
<WeddingDetatilsResponse xmlns="http://www.americanweddinggroup.com/API/PublicJSON"> 
    <WeddingDetatilsResult> 
    <eventID>string</eventID> 
    <weddingVenue>string</weddingVenue> 
    <weddingDate>string</weddingDate> 
    <bridesName>string</bridesName> 
    <groomsName>string</groomsName> 
    <passwordAvailable>string</passwordAvailable> 
    <thumbnailImage>string</thumbnailImage> 
    <galleryImages> 
     <anyType /> 
     <anyType /> 
    </galleryImages> 
    </WeddingDetatilsResult> 
</WeddingDetatilsResponse> 
    </soap:Body> 
</soap:Envelope> 

以上是肥皂細節獲取數據。

我是新來的網絡服務,所以請幫助我。

這就是我想

SoapObject request=new SoapObject(NAMESPACE, METHODNAME); 
    request.addProperty("EventID",1);//in soap event value is string 

    SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet=true; 
    envelope.setOutputSoapObject(request); 

    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
    try { 
     androidHttpTransport.call(SOAPACTION, envelope); 
     SoapObject response = (SoapObject) envelope.getResponse(); 
     // SoapPrimitive response1 = (SoapPrimitive) envelope.getResponse(); 
     System.out.println("No of Datas are "+response.getPropertyCount()+response);//this returns count as 8 
     System.out.println("No of Datas are "+response.getAttributeCount()+response);//this returns count as 0 

出把響應的是

anyType{ 
eventID=anyType{}; 
weddingVenue=anyType{}; 
    weddingDate=anyType{}; 
bridesName=anyType{}; 
groomsName=anyType{}; 
passwordAvailable=anyType{}; 
thumbnailImage=anyType{}; 
galleryImages=anyType{}; 
} 

但對於事件ID = 1 URL返回

<eventID>1</eventID> 
<weddingVenue>The Party Place</weddingVenue> 
<weddingDate>4/26/2014 12:00:00 AM</weddingDate> 
<bridesName>We have some of the Longest NamesX</bridesName> 
<groomsName>Keith Tessler</groomsName> 
<passwordAvailable>False</passwordAvailable> 
<thumbnailImage/> 
<galleryImages/> 

如何獲得上述細節,如weddingVenue = eventID = 1的「派對場所」。

回答

1

我建議你創建一個數據類具有響應:

String eventID =""; 
String weddingVenue =""; 
String weddingDate =""; 
String bridesName =""; 
String groomsName =""; 
String passwordAvailable =""; 
String thumbnailImage =""; 
String galleryImages =""; 

,並允許其命名爲MyData.After的是,創建您的代碼(上面的onCreate)命名的數據之上的公共MyData的對象。比替換

System.out.println("No of Datas are "+response.getPropertyCount()+response); 
System.out.println("No of Datas are "+response.getAttributeCount()+response); 

與代碼,將創建一個對象從您的數據類和填充屬性。嘗試這個;

androidHttpTransport.call(SOAPACTION, envelope); 
SoapObject response = (SoapObject) envelope.getResponse(); 
SoapObject main = (SoapObject)response.getProperty(0); //your xml style does not inclue envelope details so i guess it will require 0th property to reach table 


data.eventID = main.getProperty("eventID").toString(); 
data.weddinVenue = main.getProperty("weddingVenue").toString(); 
data.weddinDate = main.getProperty("weddingDate").toString(); 
data.bridesName = main.getProperty("bridesName").toString(); 
data.groomsName = main.getProperty("groomsName").toString(); 
data.passwordAvailable = main.getProperty("passwordAvailable").toString(); 
data.galleryImage = main.getProperty("galleryImage").toString(); 

在此之後,您可以通過編寫所需的代碼來獲取對象的屬性。請注意,我可能在這裏有錯誤這個代碼,因爲我剛剛寫下來,我沒有編輯器可用。返回給我的SOAP對象的類型還包括信封詳細信息,以便main = response.getProperty(0)是一種猜測,並希望它能起作用。我沒有使用ArrayList,因爲服務似乎返回 weddins給予財產的細節。希望這有幫助,我會嘗試編輯和修復,如果我有一個錯誤在這裏,一旦我有一個Eclipse的手。

此代碼來自我的項目,但我的信封與您的信封不同。希望它能幫助:

public ArrayList<Haberler> getNewsHeaders(){ 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); 
     HttpTransportSE httpTransportSe = new HttpTransportSE(URL); 
     httpTransportSe.debug = true; 
     SoapObject response = null; 

     try{ 
      httpTransportSe.call(SOAP_ACTION, envelope); 
      Log.i("call", "call successfull"); 
      response = (SoapObject)envelope.getResponse(); 
      SoapObject main = (SoapObject)response.getProperty(1); 
      SoapObject list = (SoapObject)main.getProperty(0); 

      String a = Integer.toString(list.getPropertyCount()); 
      Log.i("property count", a); 

      for(int i = 0; i<list.getPropertyCount(); i++){ 
       Haberler h = new Haberler(); 
       SoapObject nsoap = (SoapObject)list.getProperty(i); 
       if(nsoap != null){ 
        h.set_id(Integer.valueOf(nsoap.getProperty("id").toString())); 
        h.set_header(nsoap.getProperty("baslik").toString()); 
        h.set_category(nsoap.getProperty("kategori").toString()); 
        h.set_abstract(nsoap.getProperty("ozet").toString()); 
        h.set_details(nsoap.getProperty("detay").toString()); 
        h.set_begindate(nsoap.getProperty("bas_tarihi").toString()); 
        h.set_enddate(nsoap.getProperty("bit_tarihi").toString()); 
        haberler.add(h); 

        Log.i("eklenen haber", h.get_header()); 

       } 
      } 

     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 


     return haberler; 
    } 
+0

感謝答..I'll嘗試,讓你知道 –

+0

它給exceptionjava.lang.RuntimeException:非法財物:EVENTID –

+0

u能請張貼的書籍名稱或鏈接,Web服務(使用肥皂)教程。我會非常感謝你的全部。 –