مشکل در فراخوانی وب سرویس
سلام وقت بخیر دوستان من با کد زیر وب سرویسی که دارم رو فراخوانی میکنم.
<?php
echo '1 </br>';
$wsdl_url = 'http://----------:-----/aradservice1/aradservice.asmx?wsd1';
echo '2';
$client = new SOAPClient($wsdl_url,true);
echo '3';
$params = array(
'Unit' => ''
,'CertificateId' => ''
,'Date' => ''
);
echo '4';
$result = $client->AutCertif($params);
echo '5';
echo $result->HelloWorldResult;
?>
برای تریس کردنشم عددا رو چاپ میکنم تا بدونم تا کجاش اجرا میشه که تا 2 میره جلو یعنی
$client = new SOAPClient($wsdl_url,true); اجرا نمیشه
اینم wsdl وب سرویسم هست ممنون میشم راهنماییم کنید مشکل از کجاست:گریه:
<wsdl:definitions targetNamespace="http://tempuri.org/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="AutCertif">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Unit" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CertificateId" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Date" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AutCertifResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="AutCertifResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="AutCertifSoapIn">
<wsdl:part name="parameters" element="tns:AutCertif"/>
</wsdl:message>
<wsdl:message name="AutCertifSoapOut">
<wsdl:part name="parameters" element="tns:AutCertifResponse"/>
</wsdl:message>
<wsdl:portType name="AradServiceSoap">
<wsdl:operation name="AutCertif">
<wsdl:input message="tns:AutCertifSoapIn"/>
<wsdl:output message="tns:AutCertifSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AradServiceSoap" type="tns:AradServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="AutCertif">
<soap:operation soapAction="http://tempuri.org/AutCertif" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="AradServiceSoap12" type="tns:AradServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="AutCertif">
<soap12:operation soapAction="http://tempuri.org/AutCertif" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AradService">
<wsdl:port name="AradServiceSoap" binding="tns:AradServiceSoap">
<soap:address location="http://----------:----/aradservice1/aradservice.asmx"/>
</wsdl:port>
<wsdl:port name="AradServiceSoap12" binding="tns:AradServiceSoap12">
<soap12:address location="http://-------:----/aradservice1/aradservice.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
نقل قول: مشکل در فراخوانی وب سرویس
چه خروجی میده صفحه ؟ آیا صفحه سفید میاد ؟ در اینصورت احتمالا بابت اینه که اررور ها رو غیر فعال کردن رو سرورت و نشون نمیده
فعالشون کن ببین اررورت چیه
از try/catch هم استفاده کنی فکر میکنم جواب بده حتی اگه اررور ها غیر فعال باشه
try
{
$client = new SOAPClient($wsdl_url,true);
}
catch(Exception $e){
echo 'ERROR : ' . $e->getMessage();
exit;
}
در ضمن فکر میکنم آرگومان دوم تابع SOAPClient باید یک آرایه ای از پارمتر ها باشه نه true
نقل قول: مشکل در فراخوانی وب سرویس
نقل قول:
نوشته شده توسط
plague
چه خروجی میده صفحه ؟ آیا صفحه سفید میاد ؟ در اینصورت احتمالا بابت اینه که اررور ها رو غیر فعال کردن رو سرورت و نشون نمیده
فعالشون کن ببین اررورت چیه
از try/catch هم استفاده کنی فکر میکنم جواب بده حتی اگه اررور ها غیر فعال باشه
try
{
$client = new SOAPClient($wsdl_url,true);
}
catch(Exception $e){
echo 'ERROR : ' . $e->getMessage();
exit;
}
در ضمن فکر میکنم آرگومان دوم تابع SOAPClient باید یک آرایه ای از پارمتر ها باشه نه true
کلا سفید برمیگردونه . اما تو برنامه های ویندوزی کار میکنه. چیزی رو باید تو هاست فعال کنم؟
نقل قول: مشکل در فراخوانی وب سرویس
رفتم از تغییر نسخه پی اچ پی soap رو تیکشو زدم. الان این خطا رو میده
ERROR : SoapClient::SoapClient(): Invalid parameters
:گریه:
نقل قول: مشکل در فراخوانی وب سرویس
خب به صورت زیر نوشتم.
try
{
$client = new SOAPClient($wsdl_url);
}
catch(Exception $e)
{
echo 'ERROR : ' . $e->getMessage(); exit;
}
$params = array(
'Unit' => ''
,'CertificateId' => ''
,'Date' => ''
);
echo '4';
$result = $client->AutCertif($params);
echo $result;
خطای زیر اومده
ERROR : SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://-----:----/aradservice1/aradservice.asmx?wsdl' : failed to load external entity "http://-----:----/aradservice1/aradservice.asmx?wsdl"
نقل قول: مشکل در فراخوانی وب سرویس
نوشته نمیتونم لود کنم چندین تا علت میتونه داشته باشه از اشتباه نوشتن لینک وبسرویس تا اشتباه فرستادن پارامتر ها یا ....
سرچ کن متن اررور رو تو نت
SOAP-ERROR: Parsing WSDL: Couldn't load from failed to load external entity
ببین چی پیشنهاد میکنن بقیه شاید یکیشون جواب داد
نقل قول: مشکل در فراخوانی وب سرویس
ممنون بابت نظراتتون. مشکل از هاست بود. چون همین وب سرویس رو با برنامه ویندوزی استفاده کرده بودم. تیکت زدم و درست کردن.