Windows 용 전화 애플리케이션 7.1 최소 요구 사항을 개발 중입니다. 그것은 asmx webservice를 소모합니다. 하지만 모든 클라이언트의 서버에 연결할 수있는 응용 프로그램을 만들고 싶습니다. 그래서 나는 webservice 경로를 변경할 때마다 같은 방법을 유지해야합니다. 웹 참조를 추가하지 않고 Windows phone 7에서 직접 websevice를 호출 할 수있는 방법이 있습니까 ??WebService 호출 Windows 용 C# .net 프레임 워크 2.0에서 웹 참조를 추가하지 않고
샘플 코드 :
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'형식의 인수를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?)
'시스템. Net.HttpWebRequest '에'GetRequestStream '에 대한 정의가없고'System.Net.HttpWebRequest '유형의 첫 번째 인수를 허용하는 확장 메서드'GetRequestStream '이 없습니다 (지시문이나 어셈블리 참조가 누락 되었습니까?)
당신은 URL이 필요한 HTTP 요청을 사용하여이 작업을 수행 할 수 있습니다 ... 나는 이것을 제안하지 않을 것입니다. (asmx 서비스가 http를 가져오고 게시 할 수 있도록해야합니다.) 그는 이미 가지고있는 서비스입니다. – Jonny
@Jonny 나는 웹 참조, bt를 윈도우 폰 7 사용으로 추가하지 않고 webservice를 호출 할 수있는 클래스를 개발했습니다 .net framework 2.0을 사용하면 오류가 발생합니다. 다음 링크를 확인하십시오 http://www.diogonunes.com/blog/calling-a-web-method-in-c-without-a-service-reference/ –
@sumit_dev 오류를 게시 할 수 있습니까? 그리고 나는 아마도 도움이 될 수 있습니다. 귀하의 클래스가 링크의 코드와 동일하다는 점을 기반으로 할 것입니다. – Jonny