0
我想在我的android應用程序中實現VPOS。我有C#實現。我正在嘗試根據Android進行更改。在C#代碼中;如何在android中使用NameValuePair構造HTML?
NameValueCollection parameters = new NameValueCollection();
parameters.Add("mode", strmode); //just one of parameter.
RedirectAndPOST(this, "url", parameters);
public static void RedirectAndPOST(Page page, string destinationUrl, NameValueCollection data)
{
string strForm = PreparePOSTForm(destinationUrl, data);
page.Controls.Add(new LiteralControl(strForm));
}
private static String PreparePOSTForm(string url, NameValueCollection data)
{
string formID = "PostForm";
StringBuilder strForm = new StringBuilder();
strForm.AppendFormat("<form id=\"{0}\" name=\"{0}\" action=\"{1}\" method=\"POST\">", formID, url);
foreach (string key in data)
{
strForm.AppendFormat("<input type=\"hidden\" name=\"{0}\" value=\"{1}\">", key, data[key]);
}
strForm.Append("</form>");
StringBuilder strScript = new StringBuilder();
strScript.Append("<script language=\"javascript\">");
strScript.AppendFormat("document.{0}.submit();", formID);
strScript.Append("</script>");
return strForm.ToString() + strScript.ToString();
}
在我的Java代碼,首先,我創建NameValuePair
,然後,我創建結構HTML
preparePOSTMethod
方法。之後,我發送HTTP POST Request
。
ArrayList<NameValuePair> parameter = new ArrayList<NameValuePair>();
parameter.add(new BasicNameValuePair("mode", strmode));
parameter.add(new BasicNameValuePair("cardnumber", cardNumber));
parameter.add(new BasicNameValuePair("cardexpiredatemonth", cardExpireDateMonth));
parameter.add(new BasicNameValuePair("cardexpiredateyear", cardExpireDateYear));
parameter.add(new BasicNameValuePair("cardcvv2", CardCvv2));
post = preparePOSTForm("url", parameter);
private static String preparePOSTForm(String url, ArrayList<NameValuePair> data)
{
String formID = "PostForm";
StringBuilder strForm = new StringBuilder();
strForm.append(String.format("<form id=\"{0}\" name=\"{0}\" action=\"{1}\" method=\"POST\">", formID, url));
for (int i=0; i<data.size(); i++) {
strForm.append(String.format("<input type=\"hidden\" name=\"{0}\" value=\"{1}\">", data.get(i).getName(), data.get(i).getValue()));
}
strForm.append("</form>");
StringBuilder strScript = new StringBuilder();
strScript.append("<script language=\"javascript\">");
strScript.append(String.format("document.{0}.submit();", formID));
strScript.append("</script>");
param = strForm.toString() + strScript.toString();
System.out.println("result: "+param);
return strForm.toString() + strScript.toString();
}
但是,我不能構建HTML。
Result: <form id="{0}" name="{0}" action="{1}" method="POST"><input type="hidden" name="{0}" value="{1}"><input type="hidden" name="{0}" value="{1}"><input type="hidden" name="{0}" value="{1}"><input type="hidden" name="{0}" value="{1}"><input type="hidden" name="{0}" value="{1}"><input type="hidden" name="{0}" value="{1}"></form><script language="javascript">document.{0}.submit();</script>
如何使用名稱 - 值對和StringBuilder或其他方法構造HTML
?
'parameter.add(new BasicNameValuePair(「mode」,strmode));'請添加更多變量,不要使用變量作爲strmode,因爲我們不知道你在用什麼。 – greenapps
請格式化您的結果。不要將它張貼在一行上。你讓我們滾動半個小時。 – greenapps