2015-01-21 67 views
0

我正在開發Windows Phone 7.1最低需求的後臺應用程序。它使用asmx webservice。但是我想讓應用程序能夠連接到任何客戶端的服務器。所以我需要每次改變webservice路徑以保持方法相同。有沒有辦法直接在Windows Phone 7中調用websevice而無需添加Web引用?調用WebService不在c#.net框架2.0中添加Web引用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); 
} 

錯誤:

  1. 'System.Net.WebHeaderCollection' 不包含對 '添加' 的定義和沒有擴展方法 '添加' 接受 第一可以找到'System.Net.WebHeaderCollection'類型的參數(您是否缺少使用指令或程序集引用?)

  2. '系統。 Net.HttpWebRequest'不包含'GetRequestStream'的定義,並且沒有找到接受'System.Net.HttpWebRequest'類型的第一個參數的擴展方法'GetRequestStream'(你是否缺少使用指令或程序集引用?)

+0

你可以通過使用需要URL的HTTP請求來實現這個......我不會建議這個,但是(你必須確保asmx服務是http get和post啓用的。)我寧願建議製作一個他已經擁有的服務.. – Jonny 2015-01-21 10:13:43

+0

@Jonny我開發了一個類,通過它我可以在不添加web引用的情況下調用webservice,因爲windows phone 7使用.net框架2.0,它給了我一些錯誤。檢查以下鏈接 http://www.diogonunes.com/blog/calling-a-web-method-in-c-without-a-service-reference/ – 2015-01-21 10:23:10

+0

@sumit_dev你可以發佈你得到的錯誤嗎?我可以幫忙。我認爲你的課程與鏈接中的代碼相同。 – Jonny 2015-01-21 13:19:20

回答

0

如果Web服務都是相同的,但他們之間的唯一區別是路徑,就可以正常創建服務引用,並在構造函數中分配的綁定名稱和新的HTTP開放的,這樣的事情

var serviceClient = new ServiceClient("http", txtUriPath.Text); 

但是,如果你有不同的方法爲不同的Uri路徑的每個Web服務,他們你必須讓我們知道噸他實際上有錯誤。

+0

我有更新代碼以及發佈錯誤。 – 2015-01-22 09:13:39

相關問題