Новичку нужно научиться делать запросы к веб-сервису .asmx. - PullRequest
0 голосов
/ 10 июля 2009

Мне бросили проект, о котором я должен сказать, что у меня нет ни малейшего представления, с чего начать, поэтому я надеюсь, что кто-то может дать мне несколько советов здесь!

Я работаю с интрасетью SharePoint, и мне нужно запросить настроенную веб-службу. По словам парня, который его настроил:

  1. Результатом этого запроса будет DataSet (.Net framework)
  2. Набор данных будет состоять из 1 DataTable
  3. Datatable будет иметь 3 столбца: Имя, Отдел и ссылка
  4. Имя и отдел должны отображаться в GridView и поле ссылки в качестве базового свойства PostbackUrl для поля имени.
  5. Прямо над Решеткой заголовок
  6. Установите для свойства EmptyDataText значение «Нет записей»

Теперь я работал с SQL и PHP, AJAX и т. Д., Но мне не приходилось использовать .net или что-то еще, поэтому я действительно не уверен, как вы

а) Идем по запросу этого набора данных б) в каком формате он отправляет обратно данные

Если я смогу ответить на эти два вопроса, я очень рад, что смогу отформатировать результат и сделать его красивым. Мое лучшее предположение состоит в том, что он отправляет обратно фид XML со столбцами, о которых он говорит, как элементы в XML?

Ура!

Ответы [ 3 ]

1 голос
/ 10 июля 2009

Если вы используете Visual Studio, вы сможете создать небольшое небольшое веб-приложение, которое вы сможете использовать для проверки подключения к веб-службе. Если у веб-службы есть опубликованное местоположение, вы можете просто добавить новую веб-ссылку в свой проект и указать URL-адрес ASMX, к которому вы подключаетесь.

Для этого:

  1. Щелкните правой кнопкой мыши свой веб-проект
  2. Выберите «Добавить веб-ссылку»
  3. Введите URL-адрес веб-службы, к которой вы подключаетесь, и найдите нужное определение веб-службы.
  4. Назовите ссылку
  5. Нажмите кнопку «Добавить ссылку».

Теперь вы можете ссылаться на эту веб-ссылку в своем коде, используя имя, которое вы дали в шаге 4.

MyWebServiceName ws = new MyWebServiceName();
ws.WebServiceMethodName(query);

Это должно как минимум помочь вам начать получать информацию от веб-службы.

0 голосов
/ 10 июля 2009

Для инструмента отладки, который поможет вам протестировать веб-сервис и посмотреть, что возвращается, взгляните на STORM . Существует также версия WCF, если вы используете службу WCF.

Я нашел этот инструмент бесценным, чтобы увидеть, что делает веб-сервис. Единственная проблема, с которой я столкнулся, это то, что она может быть немного придирчивой - ваш веб-сервис должен соответствовать стандартам, иначе он будет недоволен.

0 голосов
/ 10 июля 2009

Вы на самом деле не запрашиваете наборы данных так, как вы бы запрашивали базу данных, потому что это объекты с коллекциями объектов.

Скорее, вы будете перебирать коллекции объектов, извлекать то, что вам нужно, и затем преобразовывать эти выходные данные в соответствующий тип данных. «для каждого» цикла являются одним из вариантов.

первая ссылка Google для 'ado.net datatable' .... http://msdn.microsoft.com/en-us/magazine/cc163709.aspx

имеет то, что вам нужно примерно на полпути вниз. Очевидно, вам нет дела до частей соединения ado.net.

Этот фрагмент кода, возможно, более полезен - короче и четко показывает итерацию.

http://www.eggheadcafe.com/articles/20030903.asp

Alternativley

учитывая языки, которые вы перечисляете, вы можете запросить более универсальный формат данных ... такой как XML, как вы предлагаете ... это будет более независимый от языка формат для использования.

Легко опубликовать новый метод веб-службы, который будет возвращать тот же набор данных, что и XML-документ в строковом формате ... просто используйте метод to xml набора данных, перенаправьте его в Xdocument и .toString () его ...

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