#c# #web-services #soap
#c# #веб-сервисы #soap
Вопрос:
Я работаю над веб-службой c # soap. Веб-служба используется другими программами C # Windows, а также веб-страницами PHP. Мне нужно передать параметр в URL веб-службы, который программы c # Windows или скрипты php используют для подключения к веб-службе. Я был в состоянии сделать что-то вроде:
Если бы я использовал описанный выше метод, как бы я мог получить параметры, которые находятся в 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