Нужна помощь с кодом для получения ответа от веб-службы. Можете ли вы помочь мне соединить точки? - PullRequest
0 голосов
/ 24 февраля 2011

Хорошо, я давно работал с веб-ссылками. Мне нужно освежить. Я думаю, что у меня есть около 80% кода, который мне нужен для получения ответа, но я что-то упускаю Может быть, вы можете помочь мне:)

Дано:
Веб-метод с именем GetSomething в списке методов при указании на .wsdl url.

Это создает несколько классов / объектов:

  • GetSomethingRequest
  • GetSomethingCompletedEventHandler
  • GetSomethingCompletedEventArgs
  • myComplexType

Который я использую для создания этого кода:

void someMethodToTestResponse()
{
    GetSomethingRequest request = new GetSomethingRequest();

    // fill in the request
    request.myComplexType.Property1 = "Blah";
    request.myComplexType.Property2 = "Kachoo";

    GetSomethingCompletedEventHandler handler = GetSomethingCompleted_Response;

    //.... ok now what?
    //handler.Invoke(???)
    // at this point I'm supposed to send an object for source (request maybe?)
    // and a new instance of GetSomethingCompletedEventArgs but that class is
    // asking for stuff that makes me think that is not the right idea.

}

void GetSomethingCompleted_Response(object source, GetSomethingCompletedEventArgs args)
{
    // get the result
    var result = args.Result;
}

Что я делаю не так? Что мне не хватает? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2011

Хорошо, я понял, что мне нужно найти класс типа Service. См. ТАК сообщение , где упоминается:

private com.nowhere.somewebservice ws;

Проблема заключалась в том, что занятия, которые они проводят, не были для меня интеллектуальными, и я подумал, что это не то, что я искал.

Вот как бы я решил свою проблему:

blah.webservice.SomeMainServiceClass service = new SomeMainServiceClass();
GetSomethingRequest request = new GetSomethingRequest();

// fill in the request
request.myComplexType.Property1 = "Blah";
request.myComplexType.Property2 = "Kachoo";

object myResponse = service.GetSomething(request);
0 голосов
/ 25 февраля 2011

Вам не нужны исходные коды веб-службы. Веб-сервис может быть реализован на Java. Создание ссылки на сервис работает так же, как мы на самом деле не знаем, что находится на другой стороне.

Итак, попробуйте добавить ссылку на службу в VS2008 и введите URL-адрес для работающего веб-сервиса. VS проверит wsdl на сервере и сгенерирует для вас необходимые классы.

С этого момента вы просто вызываете сервис как обычный вызов метода. Это означает, что вам не нужно возиться с запросами, http и такими подробностями. Все, что скрыто от вас. За исключением файла app.config, где можно изменить многие настройки WCF.

...