سؤال

هل هناك أي أداة من أجل PHP يمكن استخدامها لتوليد رمز تستهلك خدمة ويب على أساس WSDL?شيء مماثل إلى النقر فوق "إضافة مرجع ويب" في Visual Studio أو الكسوف البرنامج المساعد الذي يفعل الشيء نفسه بالنسبة جافا.

هل كانت مفيدة؟

المحلول

لقد كان نجاحا كبيرا مع wsdl2php.فإنه سيتم تلقائيا إنشاء المجمع دروس لجميع الكائنات والأساليب المستخدمة في خدمة الويب الخاص بك.

نصائح أخرى

في PHP 5 يمكنك استخدام SoapClient على WSDL استدعاء خدمة ويب وظائف. على سبيل المثال:

$client = new SoapClient("some.wsdl");

و $العميل هو الآن كائن التي لديها أساليب الفئة كما هو محدد في بعض.wsdl.حتى إذا كان هناك طريقة تسمى getTime في WSDL ثم يمكنك فقط الاتصال على:

$result = $client->getTime();

و نتيجة ذلك أن (الواضح) في دولار نتيجة متغير.يمكنك استخدام __getFunctions طريقة للعودة قائمة بجميع الطرق المتاحة.

لقد استخدمت NuSOAP في الماضي.أنا أحب ذلك لأنه مجرد مجموعة من ملفات PHP التي يمكنك تضمينها.لا يوجد شيء إلى تثبيت على ملقم ويب و لا خيارات التكوين إلى تغيير.وقد WSDL الدعم فضلا الذي هو مكافأة.

هذا المادة يوضح كيف يمكنك استخدام PHP SoapClient استدعاء api خدمة ويب.

حسنا, تلك الميزات الخاصة الأداة التي تستخدمها من أجل التنمية في تلك اللغات.

لن يكون لديك هذه الأدوات إذا (على سبيل المثال) كنت تستخدم المفكرة لكتابة التعليمات البرمجية.لذا ربما يجب أن نسأل السؤال عن أداة تستخدمه.

PHP: http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html

مرحبا أنا حصلت على هذا من هذا الموقع : http://forums.asp.net/t/887892.aspx?Consume+an+ASP+NET+Web+Service+with+PHP

خدمة ويب لديها طريقة Add الذي يأخذ اثنين params:

<?php
    $client = new SoapClient("http://localhost/csharp/web_service.asmx?wsdl");

     print_r( $client->Add(array("a" => "5", "b" =>"2")));
?>

تقول أنك قدمت التالية:

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/">
    <x:Header/>
    <x:Body>
        <int:authenticateLogin>
            <int:LoginId>12345</int:LoginId>
        </int:authenticateLogin>
    </x:Body>
</x:Envelope>

و

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <authenticateLoginResponse xmlns="http://thesite.com/">
            <authenticateLoginResult>
                <RequestStatus>true</RequestStatus>
                <UserName>003p0000006XKX3AAO</UserName>
                <BearerToken>Abcdef1234567890</BearerToken>
            </authenticateLoginResult>
        </authenticateLoginResponse>
    </s:Body>
</s:Envelope>

دعنا نقول أن الوصول إلى http://thesite.com/ قال WSDL عنوان:http://thesite.com/PortalIntegratorService.svc?wsdl

$client = new SoapClient('http://thesite.com/PortalIntegratorService.svc?wsdl');
$result = $client->authenticateLogin(array('LoginId' => 12345));
if (!empty($result->authenticateLoginResult->RequestStatus)
    && !empty($result->authenticateLoginResult->UserName)) {
    echo 'The username is: '.$result->authenticateLoginResult->UserName;
}

كما يمكنك أن ترى العناصر المحددة في XML تستخدم في كود PHP على الرغم من LoginId قيمة يمكن تغييرها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top