Rank: Newbie
Joined: 12/25/2007 Posts: 14
|
Hi, I am buidling a usercontrol to comsume a webservice. The wsdl can be found here. It is very easy to generate a proxy (or what is the correct term?) using wsdl.exe. So far it works perfectly. However, the methods that are exposed through the wsdl do not allow me to retrieve the data as xml, the only output I can get back comes in the form of an array of results that I can get back as strings to work with... This is quite inconvenient. I know for a fact that it is possible to get the raw xml data back from the webservice because some online generic Soap clients give me xml output but I do not know enough about Soap to know how to get to the xml myself. I googled around a bit but the only articles about webservice consumption I could find focused on using wsdl.exe and the methods it builds from the wsdl. I probably need to do something with the output of the Invoke method... but again, I am not at all a soap expert so I don't know where to start... I will include the code generated by wsdl.exe for good measure; Code://------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version:2.0.50727.1434 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------
// // This source code was auto-generated by wsdl, Version=2.0.50727.1432. // namespace LiriasClient { using System.Xml.Serialization; using System.Web.Services; using System.ComponentModel; using System.Web.Services.Protocols; using System; using System.Diagnostics; /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="QueryLiriasSoapBinding", Namespace="https://lirias.kuleuven.be/services/QueryLirias")] public partial class QueryLiriasServletService : System.Web.Services.Protocols.SoapHttpClientProtocol { private System.Threading.SendOrPostCallback getPubsUNumberOperationCompleted; private System.Threading.SendOrPostCallback getPubsUNumbersOperationCompleted; private System.Threading.SendOrPostCallback getPubsOUNumberOperationCompleted; /// <remarks/> public QueryLiriasServletService() { this.Url = "https://lirias.kuleuven.be/services/QueryLirias"; } /// <remarks/> public event getPubsUNumberCompletedEventHandler getPubsUNumberCompleted; /// <remarks/> public event getPubsUNumbersCompletedEventHandler getPubsUNumbersCompleted; /// <remarks/> public event getPubsOUNumberCompletedEventHandler getPubsOUNumberCompleted; /// <remarks/> [System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:lirias.kuleuven.be:QueryLirias#getPubsUNumber", RequestNamespace="https://lirias.kuleuven.be/services/QueryLirias", ResponseNamespace="https://lirias.kuleuven.be/services/QueryLirias", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlElementAttribute("getPubsUNumberReturn")] public LiriasItem[] getPubsUNumber(string authorID, string affiliated, string username, string password) { object[] results = this.Invoke("getPubsUNumber", new object[] { authorID, affiliated, username, password}); return ((LiriasItem[])(results[0])); } /// <remarks/> public System.IAsyncResult BegingetPubsUNumber(string authorID, string affiliated, string username, string password, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("getPubsUNumber", new object[] { authorID, affiliated, username, password}, callback, asyncState); } /// <remarks/> public LiriasItem[] EndgetPubsUNumber(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((LiriasItem[])(results[0])); } /// <remarks/> public void getPubsUNumberAsync(string authorID, string affiliated, string username, string password) { this.getPubsUNumberAsync(authorID, affiliated, username, password, null); } /// <remarks/> public void getPubsUNumberAsync(string authorID, string affiliated, string username, string password, object userState) { if ((this.getPubsUNumberOperationCompleted == null)) { this.getPubsUNumberOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetPubsUNumberOperationCompleted); } this.InvokeAsync("getPubsUNumber", new object[] { authorID, affiliated, username, password}, this.getPubsUNumberOperationCompleted, userState); } private void OngetPubsUNumberOperationCompleted(object arg) { if ((this.getPubsUNumberCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.getPubsUNumberCompleted(this, new getPubsUNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } /// <remarks/> [System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:lirias.kuleuven.be:QueryLirias#getPubsUNumbers", RequestNamespace="https://lirias.kuleuven.be/services/QueryLirias", ResponseNamespace="https://lirias.kuleuven.be/services/QueryLirias", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlElementAttribute("getPubsUNumbersReturn")] public LiriasItem[] getPubsUNumbers([System.Xml.Serialization.XmlElementAttribute("numbers")] string[] numbers, string affiliated, string username, string password) { object[] results = this.Invoke("getPubsUNumbers", new object[] { numbers, affiliated, username, password}); return ((LiriasItem[])(results[0])); } /// <remarks/> public System.IAsyncResult BegingetPubsUNumbers(string[] numbers, string affiliated, string username, string password, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("getPubsUNumbers", new object[] { numbers, affiliated, username, password}, callback, asyncState); } /// <remarks/> public LiriasItem[] EndgetPubsUNumbers(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((LiriasItem[])(results[0])); } /// <remarks/> public void getPubsUNumbersAsync(string[] numbers, string affiliated, string username, string password) { this.getPubsUNumbersAsync(numbers, affiliated, username, password, null); } /// <remarks/> public void getPubsUNumbersAsync(string[] numbers, string affiliated, string username, string password, object userState) { if ((this.getPubsUNumbersOperationCompleted == null)) { this.getPubsUNumbersOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetPubsUNumbersOperationCompleted); } this.InvokeAsync("getPubsUNumbers", new object[] { numbers, affiliated, username, password}, this.getPubsUNumbersOperationCompleted, userState); } private void OngetPubsUNumbersOperationCompleted(object arg) { if ((this.getPubsUNumbersCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.getPubsUNumbersCompleted(this, new getPubsUNumbersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } /// <remarks/> [System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:lirias.kuleuven.be:QueryLirias#getPubsOUNumber", RequestNamespace="https://lirias.kuleuven.be/services/QueryLirias", ResponseNamespace="https://lirias.kuleuven.be/services/QueryLirias", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlElementAttribute("getPubsOUNumberReturn")] public LiriasItem[] getPubsOUNumber(string ou, string affiliated, string username, string password) { object[] results = this.Invoke("getPubsOUNumber", new object[] { ou, affiliated, username, password}); return ((LiriasItem[])(results[0])); } /// <remarks/> public System.IAsyncResult BegingetPubsOUNumber(string ou, string affiliated, string username, string password, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("getPubsOUNumber", new object[] { ou, affiliated, username, password}, callback, asyncState); } /// <remarks/> public LiriasItem[] EndgetPubsOUNumber(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((LiriasItem[])(results[0])); } /// <remarks/> public void getPubsOUNumberAsync(string ou, string affiliated, string username, string password) { this.getPubsOUNumberAsync(ou, affiliated, username, password, null); } /// <remarks/> public void getPubsOUNumberAsync(string ou, string affiliated, string username, string password, object userState) { if ((this.getPubsOUNumberOperationCompleted == null)) { this.getPubsOUNumberOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetPubsOUNumberOperationCompleted); } this.InvokeAsync("getPubsOUNumber", new object[] { ou, affiliated, username, password}, this.getPubsOUNumberOperationCompleted, userState); } private void OngetPubsOUNumberOperationCompleted(object arg) { if ((this.getPubsOUNumberCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.getPubsOUNumberCompleted(this, new getPubsOUNumberCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } } /// <remarks/> public new void CancelAsync(object userState) { base.CancelAsync(userState); } } /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(Namespace="https://lirias.kuleuven.be/services/QueryLirias")] public partial class LiriasItem { private string[] authorsField; private string[] authorsWithIDField; private string collectionsField; private string confDateField; private string confLocField; private string confNameField; private string docTypeField; private string[] editorsField; private string[] editorsWithIDField; private string endPageField; private string hostDocTitleField; private string isbnField; private string issnField; private string issueField; private string publisherField; private string startPageField; private string titleField; private string volumeField; private string yearField; /// <remarks/> [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)] [System.Xml.Serialization.XmlArrayItemAttribute("authors", IsNullable=false)] public string[] authors { get { return this.authorsField; } set { this.authorsField = value; } } /// <remarks/> [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)] [System.Xml.Serialization.XmlArrayItemAttribute("authorsWithID", IsNullable=false)] public string[] authorsWithID { get { return this.authorsWithIDField; } set { this.authorsWithIDField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string collections { get { return this.collectionsField; } set { this.collectionsField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string confDate { get { return this.confDateField; } set { this.confDateField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string confLoc { get { return this.confLocField; } set { this.confLocField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string confName { get { return this.confNameField; } set { this.confNameField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string docType { get { return this.docTypeField; } set { this.docTypeField = value; } } /// <remarks/> [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)] [System.Xml.Serialization.XmlArrayItemAttribute("editors", IsNullable=false)] public string[] editors { get { return this.editorsField; } set { this.editorsField = value; } } /// <remarks/> [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)] [System.Xml.Serialization.XmlArrayItemAttribute("editorsWithID", IsNullable=false)] public string[] editorsWithID { get { return this.editorsWithIDField; } set { this.editorsWithIDField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string endPage { get { return this.endPageField; } set { this.endPageField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string hostDocTitle { get { return this.hostDocTitleField; } set { this.hostDocTitleField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string isbn { get { return this.isbnField; } set { this.isbnField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string issn { get { return this.issnField; } set { this.issnField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string issue { get { return this.issueField; } set { this.issueField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string publisher { get { return this.publisherField; } set { this.publisherField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string startPage { get { return this.startPageField; } set { this.startPageField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string title { get { return this.titleField; } set { this.titleField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string volume { get { return this.volumeField; } set { this.volumeField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public string year { get { return this.yearField; } set { this.yearField = value; } } } /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] public delegate void getPubsUNumberCompletedEventHandler(object sender, getPubsUNumberCompletedEventArgs e); /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class getPubsUNumberCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { private object[] results; internal getPubsUNumberCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) { this.results = results; } /// <remarks/> public LiriasItem[] Result { get { this.RaiseExceptionIfNecessary(); return ((LiriasItem[])(this.results[0])); } } } /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] public delegate void getPubsUNumbersCompletedEventHandler(object sender, getPubsUNumbersCompletedEventArgs e); /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class getPubsUNumbersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { private object[] results; internal getPubsUNumbersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) { this.results = results; } /// <remarks/> public LiriasItem[] Result { get { this.RaiseExceptionIfNecessary(); return ((LiriasItem[])(this.results[0])); } } } /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] public delegate void getPubsOUNumberCompletedEventHandler(object sender, getPubsOUNumberCompletedEventArgs e); /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.1432")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class getPubsOUNumberCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { private object[] results; internal getPubsOUNumberCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) { this.results = results; } /// <remarks/> public LiriasItem[] Result { get { this.RaiseExceptionIfNecessary(); return ((LiriasItem[])(this.results[0])); } } } }
|