2012-11-29 79 views
0

我有下面的代碼連接到web服務並查詢API以獲得成功的結果。但我面臨兩個問題獲取來自restful webservice的回覆

  1. 我無法捕獲XML格式的響應。

  2. 我不能從頁面重定向到返回URL。

請幫助TIA

字符串URL = 「」;

string Method = ""; 

    string Group = ""; 

    string FormName = ""; 

    string return_url = ""; 

    Url = "https://abc.com/ws/"; 
    Method = "getRates"; 
    Group = "rates"; 
    FormName = "form1"; 
    return_url = "~/app/Public/PaymentTest.aspx?DR={DR}"; 

    NameValueCollection FormFields = new NameValueCollection(); 
    FormFields.Add("username", "xxx"); 
    FormFields.Add("password", "xxxx"); 
    FormFields.Add("pin", "xxxx"); 
    FormFields.Add("dest_country", "Kenya"); 
    FormFields.Add("return_url", return_url); 

    Response.Write("<html><head>"); 
    Response.Write(string.Format("</head><body onload=\"document.{0}.submit()\">", FormName)); 
    Response.Write(string.Format("<form name=\"{0}\" method=\"{1}\" action=\"{2}\" >", FormName, "post", Url + Group + "/" + Method)); 

    for (int i = 0; i < FormFields.Keys.Count; i++) 
    { 
     Response.Write(string.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", FormFields.Keys[i], FormFields[FormFields.Keys[i]])); 
    } 
    Response.Write("</form>"); 
    Response.Write("</body></html>"); 
    Response.End(); 

回答

0

裝入返回XML到數據集(注:returnds),然後我檢索XML階躍響應這樣的:

int i = 0; 
string current = null; 
for (i = 0; i <= returnds.Tables(0).Rows.Count - 1; i++) { 
    if (Information.IsDBNull(returnds.Tables(0).Rows(i)("ValueOfXML")) == true) { 
    current = "";} 
else { 
    current = Convert.ToString(returnds.Tables(0).Rows(i)("ValueOfXML")); 
    } 
} 
0

你似乎是試圖建立一個HTML唯一的解決辦法。 (你使用ASP.NET來生成HTML是一種分心)。您需要在onload上編寫額外的JavaScript - 您可能不想提交表單,這會告訴瀏覽器您已完成該頁面。你會想做一個JavaScript的Web服務調用,jQuery的方式比原始XmlHttp更容易

Ref:How to call a web service from jQuery