Khurrum has asked for the wisdom of the Perl Monks concerning the following question:
Hi i have setup a local WCF service with the following specs:
Web Service:
•OperationContract: [OperationContract] string SampleTest(Tester test)
•DataContract: [DataContract(Name = "Tester")]public class Tester
•DataMember: [DataMember(IsRequired = true)]public string Name, [DataMember(IsRequired = true)]public int Age
Now with my Perl script i have been able to successfully call a function with just a simple string parameter but i cant figure out how to call a function which has an object as its argument.
The method i am trying to access is trivial:
public string SampleTest(Tester test)
{
if (test == null)
{
return String.Format("NULL test");
}
}
When i use the following script i always get the above string printed meaning that the argument isnt passed correctly. Here is a relevant portion of the script:
my $method = SOAP::Data->name('SampleTest')
->attr({xmlns => 'http://tempuri.org/'});
my $query =
SOAP::Data
->name(Tester =>
\SOAP::Data->value(
SOAP::Data->name(Name => 'Nathan'),
SOAP::Data->name(Age => 22)
));
print $soap->call($method => $query)->result;
I dont think i am contructing the correct SOAP request. I am not sure how to check my WCF service on what request does it expect. I can access the WSDL file generated by my WCF service but it doesnt tell anything on the format of the SOAP request and response.
Can someone please help me out. Thanks in advance.
Web Service:
•OperationContract: [OperationContract] string SampleTest(Tester test)
•DataContract: [DataContract(Name = "Tester")]public class Tester
•DataMember: [DataMember(IsRequired = true)]public string Name, [DataMember(IsRequired = true)]public int Age
Now with my Perl script i have been able to successfully call a function with just a simple string parameter but i cant figure out how to call a function which has an object as its argument.
The method i am trying to access is trivial:
public string SampleTest(Tester test)
{
if (test == null)
{
return String.Format("NULL test");
}
}
When i use the following script i always get the above string printed meaning that the argument isnt passed correctly. Here is a relevant portion of the script:
my $method = SOAP::Data->name('SampleTest')
->attr({xmlns => 'http://tempuri.org/'});
my $query =
SOAP::Data
->name(Tester =>
\SOAP::Data->value(
SOAP::Data->name(Name => 'Nathan'),
SOAP::Data->name(Age => 22)
));
print $soap->call($method => $query)->result;
I dont think i am contructing the correct SOAP request. I am not sure how to check my WCF service on what request does it expect. I can access the WSDL file generated by my WCF service but it doesnt tell anything on the format of the SOAP request and response.
Can someone please help me out. Thanks in advance.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Calling .NET based service using SOAP::Lite for Perl
by erroneousBollock (Curate) on Nov 06, 2007 at 03:09 UTC | |
by Khurrum (Novice) on Nov 06, 2007 at 06:48 UTC | |
by erroneousBollock (Curate) on Nov 06, 2007 at 08:22 UTC | |
by erroneousBollock (Curate) on Nov 06, 2007 at 08:23 UTC | |
by Khurrum (Novice) on Nov 06, 2007 at 17:56 UTC | |
by erroneousBollock (Curate) on Nov 07, 2007 at 06:53 UTC |
Back to
Seekers of Perl Wisdom