0

Web サービスに接続し、API にクエリを実行して成功した結果を取得するための以下のコードがあります。しかし、私は2つの問題に直面しています

  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();
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 を生成していることは気を散らすものです)。オンロードに追加の JavaScript を記述する必要があります。おそらく、フォームを送信したくないでしょう。これにより、ページの操作が完了したことをブラウザに伝えることができます。JavaScript Web サービス呼び出しを行いたいと思うでしょう。jquery の方法は生の XmlHttp よりも簡単です

参考:jQueryからWebサービスを呼び出す方法

于 2012-11-29T18:12:23.357 に答える