Параметры метода передачи PHP-мыла

Вы можете использовать следующий код, чтобы заменить «~ /» для абсолютирования URL.

System.Web.VirtualPathUtility.ToAbsolute("~/")

Редактировать:

Сначала нужно определить метод.

public static string ResolveServerUrl(string serverUrl, bool forceHttps)
{
    if (serverUrl.IndexOf("://") > -1)
        return serverUrl;

    string newUrl = serverUrl;
    Uri originalUri = System.Web.HttpContext.Current.Request.Url;
    newUrl = (forceHttps ? "https" : originalUri.Scheme) +
        "://" + originalUri.Authority + newUrl;
    return newUrl;
} 

Теперь вызов этого метода вернет полный URL-адрес освобождения.

ResolveServerUrl(VirtualPathUtility.ToAbsolute("~/images/image1.gif"),false))

Выход будет http://www.yourdomainname.com/images/image1.gif

7
задан maxjackie 19 March 2013 в 13:31
поделиться

2 ответа

попробуйте это,

$client->__soapCall('methodName',array('requestObj'=>$requestObj));
-4
ответ дан 6 December 2019 в 14:09
поделиться

Работая сегодня над слегка связанной проблемой, я обнаружил, что следующий PHP генерирует запрос SOAP, показанный ниже:

$sc = new SoapClient($url);
$params = array('step' => 'ShippingInfo', 'value' => "hello");
$result = $sc->__soapCall('runStep', array('parameters' => $params));
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/">
 <SOAP-ENV:Body>
  <ns1:runStep>
     <ns1:step>ShippingInfo</ns1:step>
     <ns1:value>hello</ns1:value>
  </ns1:runStep>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Я обнаружил, что если параметры ($ params) я передал не соответствует тому, что было указано в файле WSDL, сообщение, созданное клиентом SOAP, будет похоже на то, на которое вы жалуетесь - сообщение с телом не содержит значения данных. Интересно, здесь ли кроется ваша проблема.

Также обратите внимание на то, как PHP выше использует два массива для передачи параметров. Первый массив содержит параметры и их имена. Второй содержит первый массив. Я знаю, интересный синтаксис. : -)

К вашему сведению, приведенный выше пример кода используется для связи со службой C # .Net WCF, имеющей следующий контракт:

[OperationContract]
string runStep(string step, string value);
15
ответ дан 6 December 2019 в 14:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: