• 19-07-2019, 09:44:58
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    ......
  • 19-07-2019, 10:09:39
    #2
    Merhaba, soap request attığınızda size dönen response objesi doğru bir şekilde mapleniyor mu, kontrol ettiniz mi?
  • 19-07-2019, 12:15:04
    #3
    Sanırsam web servisi direk referans ekleyip kullanıyorsunuz. Ben de çok yakın zamanlarda N11 entegrasyonu gerçekleştirdim .NET üzerinde ancak referans olarak eklemek yerine XmlSerializer ve XmlReader yardımıyla HttpWebRequest kullanarak entegre ettim. Web referans olarak eklediğimde sizin gibi success dönse bile response üzerinden herhangi bir data dönmüyordu. Ya gerçekten biz bir şey kaçırıyoruz ya da cidden serviste bir problem var.
  • 19-07-2019, 14:36:51
    #4
    Referans olarak eklendiğinde sürekli programla beraber kendisinin DLL dosyalarını taşımak boyut olarak dezavantaj gibi geldiğinden yapmıştım ben de. Şöyle bir örnek vereyim eğer yeniden WebRequest kullanmayı isterseniz şu şekilde nodeları almayı deneyebilirsiniz:

    Bu kodu siparişler ile ilgili bir metodda kullanmıştım.

    // Post metodu kendi yazdığım bir metod sadece xml ve soap action adı verip post ediyor
    // geriye xml dönüyor
    var responseXmlDocument = Post(orderXml, $"{_host}/SetOrder");
    
    // Xml içerisinde olan gerekli namespace'leri eklediğim alan
    XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(responseXmlDocument.NameTable);
    xmlNamespaceManager.AddNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
    
    // Body içerisindeki nodeları almak için ilk body'i seçiyorum
    var xmlNode = responseXmlDocument.SelectSingleNode("/soap:Envelope/soap:Body", xmlNamespaceManager);
    
    // Burada dönen mesajı vs seçip dönüyorum
    return new OrderResultInfo
    {
        ResultCode = xmlNode["SetOrderResponse"]["SetOrderResult"]["OrderResultInfo"]["ResultCode"].InnerText,
    ResultMessage = xmlNode["SetOrderResponse"]["SetOrderResult"]["OrderResultInfo"]["ResultMessage"].InnerText
    };
    Çok amatörce bir kodmuş gibi durabilir ama sadece örnek için yazdım umarım kafanızda bir şey canlanmıştır.
  • 20-07-2019, 20:46:28
    #5
    Şurada bulunan iki satırı;

    XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(responseXml.NameTable);
    xmlNamespaceManager.AddNamespace("soap", "http://www.w3.org/2003/05/soap-envelope");
    Şununla değiştirip tekrar deneyebilir misiniz;

    XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(responseXml.NameTable);
    xmlNamespaceManager.AddNamespace("env", "http://schemas.xmlsoap.org/soap/envelope/");
    xmlNamespaceManager.AddNamespace("ns3", "http://www.n11.com/ws/schemas");
  • 23-07-2019, 16:57:00
    #6
    ......