0

我有以下代码连接到 Web 服务并查询 API 以获得成功的结果。但我面临两个问题

  1. 我无法捕获 XML 格式的响应。

  2. 我无法从页面重定向回返回 URL。

请帮助 TIA

字符串网址 = "";

    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();
4

2 回答 2

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"));
  }
}
于 2012-11-29T18:01:31.290 回答
0

您似乎正在尝试创建仅 HTML 的解决方案。(您使用 ASP.NET 生成 HTML 会分散注意力)。您将需要在 onload 上编写额外的 javascript——您可能不想提交表单,这会告诉浏览器您已完成该页面。您会想要进行 javascript Web 服务调用,jquery 方式比原始 XmlHttp 更容易

参考:如何从 jQuery 调用 Web 服务

于 2012-11-29T18:12:23.357 回答