Нужно ли настраивать NuSoap определенным образом при звонке из WCF? - PullRequest
0 голосов
/ 10 октября 2008

Я пытаюсь вызвать php веб-сервис с использованием WCF. Я погуглил некоторые публичные php-сервисы, чтобы посмотреть, смогу ли я воспроизвести полученную ошибку, и я создал 2 разных модульных теста для демонстрации.

Тест, который не прошел, я получаю следующую ошибку: System.ServiceModel.ProtocolException: тип содержимого text / xml; charset = ISO-8859-1 ответного сообщения не соответствует типу содержимого привязки (text / xml; charset = utf-8). При использовании пользовательского кодировщика убедитесь, что метод IsContentTypeSupported реализован правильно. Первые 601 байт ответа были: '

Вот модульные тесты:

[TestMethod]
public void WCF_Call_To_SiteInspect() {
    //This service doesn't work. It gets the same communication error as our own servers
    var soapClien = new SiteInspect.SiteInspectPortClient();

    var response = soapClien.doSiteInspect("Any", "Any", "www.google.com");
    Assert.IsTrue(response.serverTime.Length > 0);
}



[TestMethod]
public void WCF_Call_To_FinnService() {
    //This service works.... in looking at the wsdl it appears that it references a separate wsdl file. Is this the reason?
    var soapClient = new NuSoapFinnService.finnwordsPortTypeClient();

    var finnLyric = soapClient.getRandomNeilFinnLyric("text");
    Assert.IsTrue(finnLyric.Length > 0);
}

Тестовый пример внизу (служба Finn) прошел по следующему URL: http://www.nickhodge.com/nhodge/finnwords/finnwords.wsdl

Первый тестовый пример не удался, учитывая следующий URL: http://www.flash -db.com / services / ws / siteInspect.wsdl

Единственное отличие, которое я вижу в wsdl, заключается в том, что служба Finn ссылается на посторонний файл. xmlns: tns = "http://www.nickhodge.com/nhodge/finnwords/finnwords.wsdl. Это ошибка с WCF, которая ожидает wsdl в определенном формате?

1 Ответ

1 голос
/ 10 октября 2008

Обязательно установите кодировку UTF-8, используя soap_defencoding в коде PHP.

Если вам нужна дополнительная информация, см. этот пост в блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...