Конвертировать C # SOAP вызов в PHP - PullRequest
0 голосов
/ 10 октября 2019

У меня есть доступ к документации для API. Мне нужно вызвать данные из этого API с помощью PHP. Единственные примеры, которые дает документация, находятся на C #. В прошлом я делал несколько вызовов API с использованием SOAP, но ни одна из моих попыток не работала с этим конкретным API с использованием SOAP.

Вот код C #, предоставленный в документации. Здесь код просто аутентифицируется в API и затем называет имя компании.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Windows.Forms;
using TestApp.CC1;

namespace TestApp
{
    public partial class Form1 : Form
    {
        // Create an instance on the ConXMLBridgeservice
        ConXMLBridgeservice cc1 = new ConXMLBridgeservice();
        // Create a network credential using an AoD Access Account
        NetworkCredential aodCred = new NetworkCredential("YourAccessAccountName", "YourAccessAccountPassword", "");

        public Form1()
        {
            InitializeComponent();

            cc1.Credentials = aodCred;
            cc1.PreAuthenticate = true;
            cc1.Url = "https://youruri.apidomain.com:9218/cc1exec.aew/soap/ConXMLBridge";

            lblCompanyName.Text = cc1.getCompanyName();
        }
    }
}

И вот моя попытка сделать этот же вызов, но в PHP:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

$options = array(
    'soap_version' => SOAP_1_1,
    'AccessAccount' => 'sample_user',
    'Password' => 'sample_pass'
);

$wsdlAddress = "https://youruri.apidomain.com:9218/cc1exec.aew/soap/ConXMLBridge";
$webServiceClient = new SoapClient($wsdlAddress, $options);
$response = $webServiceClient->__soapCall("ConXMLBridge");

var_dump($response);

Я еще не пробовал вызывать метод для названия компании getCompanyName (). Я просто пытаюсь сначала установить соединение успешно.

И, наконец, вот ошибка PHP, которую я получаю из моего звонка выше:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://youruri.apidomain.com:9218/cc1exec.aew/soap/ConXMLBridge' : failed to load external entity "https://youruri.apidomain.com:9218/cc1exec.aew/soap/ConXMLBridge" in /var/www/public/apitesting/index.php:14 Stack trace: #0 /var/www/public/apitesting/index.php(14): SoapClient->SoapClient('https://youruri...', Array) #1 {main} thrown in /var/www/public/apitesting/index.php on line 14

Обратите внимание, что APIпроприетарный API, который я подписал для использования NDA, поэтому я заменил идентифицируемую информацию на информацию sudo.

Может ли кто-нибудь помочь мне выяснить, что я делаю неправильно?

Спасибо огромноеза любую помощь.

...