Передача параметров в URL веб-службы c # soap

#c# #web-services #soap

#c# #веб-сервисы #soap

Вопрос:

Я работаю над веб-службой c # soap. Веб-служба используется другими программами C # Windows, а также веб-страницами PHP. Мне нужно передать параметр в URL веб-службы, который программы c # Windows или скрипты php используют для подключения к веб-службе. Я был в состоянии сделать что-то вроде:

http://MyWebService.asmx?myParam=trueamp;myOtherParam=false

Если бы я использовал описанный выше метод, как бы я мог получить параметры, которые находятся в URL, из веб-службы c #.

Спасибо за любую помощь, которую вы можете предоставить.

Комментарии:

1. Разве вы не можете их прочитать Request.QueryString ?

2. Я пробовал это, но не уверен, что это за пространство имен, я посмотрел его, но, похоже, оно было доступно только для ASP.net страницы

3. Он находится в системе. Веб-пространство имен. Вы можете получить к нему доступ следующим образом HttpContext.Current.Request.QueryString

4. @Suhas да, вы правы. Приветствую это

Ответ №1:

Если вы собираетесь вызывать его таким образом, имена параметров должны соответствовать тем, которые ожидаются веб-сервисом. Вам также необходимо указать имя вашего метода, например:

 http://MyWebService.asmx/MyMethodName?myParam=trueamp;myOtherParam=false
 

Комментарии:

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

2. У вас нет метода (функции) в вашем веб-сервисе, украшенного [WebMethod] атрибутом?

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

4. Какой бы метод вы ни хотели вызвать (тот, у которого есть этот атрибут), он должен быть указан в вашем URL.

Ответ №2:

Я бы рекомендовал посмотреть Restful WCF.

Ваш контракт на обслуживание будет выглядеть примерно так:

 [ServiceContract]
public interface IYourService
{
    [OperationContract, WebInvoke(Method = "GET", UriTemplate = "YourMethod?myParam={myParam}amp;myOtherParam={myOtherParam}")]
    void YourMethod(bool myParam, bool myOtherParam) {...}
}
 

Ответ №3:

Вы можете получить к ним доступ в строке запроса. Для доступа к строке запроса используйте HttpContext.Current.Request.QueryString