Я разрабатываю приложение backoffice для Windows Phone 7.1 минимальное требование. Для этого он использует asmx webservice. Но я хочу сделать приложение таким образом, чтобы он мог подключаться к серверу любого клиента. Поэтому мне нужно менять путь webservice каждый раз, сохраняя методы такими же, как и более. Есть ли способ вызвать websevice непосредственно в Windows Phone 7 без добавления веб-ссылки?Вызов WebService Без добавления веб-ссылки в C# .net framework 2.0 для Windows Phone 7
Пример кода:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
req.Headers.Add("SOAPAction", "\"" + Namespace + methodName + "\"");
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";
using (Stream stm = req.GetRequestStream())
{
string postValues = "";
if (Convert.ToInt32(Params["number"]) > 0)
{
foreach (var param in Params)
{
if (encode) postValues += string.Format("<{0}>{1}</{0}>", HttpUtility.UrlEncode(param.Key), HttpUtility.UrlEncode(param.Value));
else postValues += string.Format("<{0}>{1}</{0}>", param.Key, param.Value);
}
}
soapStr = string.Format(soapStr, methodName, postValues);
using (StreamWriter stmw = new StreamWriter(stm))
{
stmw.Write(soapStr);
}
}
using (StreamReader responseReader = new StreamReader(req.GetResponse().GetResponseStream()))
{
string result = responseReader.ReadToEnd();
//ResponseSOAP = XDocument.Parse(Utils.UnescapeString(result));
ExtractResult(methodName);
}
Ошибки:
'System.Net.WebHeaderCollection' не содержит определение для 'Добавить' и не метод расширения 'Добавить' принимающую первого можно найти аргумент типа «System.Net.WebHeaderCollection» (вам не хватает директивы использования или ссылки на сборку?)
«System.Net .HttpWebRequest 'не содержит определения для «GetRequestStream», и не может быть найден метод расширения GetRequestStream, принимающий первый аргумент типа «System.Net.HttpWebRequest» (вам не хватает директивы использования или ссылки на сборку?)
Вы можете достичь этого, используя HTTP-запросы, для которых требуется url ... Я бы не предлагал этого, хотя (вы должны убедиться, что служба asmx - это HTTP-доступ и сообщение включено.) Я бы предпочел сделать сборник услуги, которые у него уже есть. – Jonny
@ Jonny Я разработал один класс, с помощью которого я могу позвонить в webservice без добавления веб-ссылки, так как Windows Phone 7 использует .net framework 2.0, это дает мне некоторую ошибку. Проверьте следующую ссылку: http://www.diogonunes.com/blog/calling-a-web-method-in-c-without-a-service-reference/ –
@sumit_dev Можете ли вы разместить сообщение об ошибке? И я могу помочь. Я исхожу из того, что ваш класс идентичен коду в ссылке. – Jonny