我在一个页面里通过HttpWebRequest(post)方式提交到另一个页面,用HttpWebResponse接收返回的数据(XML文件)。我提交的时候传了参数,但是返回的数据是在没有传参数的情况下提示的内容,参数好像没有起作用。。把代码贴出来,大虾们帮我看看,谢谢了,急啊~~~~~~~~~~~~~~~~~~~~~~
StringBuilder strEncrypt = new StringBuilder();
strEncrypt.Append("marchant_id=" + MMS.AccountName.Trim());
strEncrypt.Append("version=bill_drawback_api_1");
strEncrypt.Append("command_type=001");
strEncrypt.Append("order_id=" + rif.resvnum);
strEncrypt.Append("amount=" + "2");
strEncrypt.Append("postdate=" + DateTime.Now.ToString());
strEncrypt.Append("txOrder=" + DateTime.Now.ToString("yyyyMMddHHmmss"));
strEncrypt.Append("merchant_key=" + merchant_key);
XmlDocument outxml = new XmlDocument();
string strData = "marchant_id=" + MMS.AccountName.Trim() + "&version=bill_drawback_api_1&command_type=001&order_id=" + rif.resvnum + "&amount=2" + "&postdate=" + DateTime.Now.ToString() + "&txOrder=" + DateTime.Now.ToString("yyyyMMddHHmmss") + "&merchant_key=" + merchant_key + "&mac=" + GetMD5(strEncrypt.ToString(), "utf-8").ToUpper();
bool bResult = true;
byte[] data = System.Text.Encoding.ASCII.GetBytes(strData);
HttpWebRequest request = WebRequest.Create("https://www.99bill.com/webapp/receiveDrawbackAction.do") as HttpWebRequest;
request.Method = "post";
request.AllowAutoRedirect = false;
request.ContentLength = data.Length;
request.Headers.Add("ContentType", "text/xml;charset = UTF-8"); //指定字符集
Stream oWriter = null;
try
{
oWriter = request.GetRequestStream();//连接post地址
oWriter.Write(data, 0, data.Length);//发送数据
oWriter.Close(); //关闭连接
bool b = request.Pipelined;
string address = request.Address.AbsoluteUri;
}
catch
{
oWriter.Close(); //关闭连接
bResult = false;
}
Stream oReader = null;
if (bResult)
{
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
oReader = response.GetResponseStream();
StreamReader r = new StreamReader(oReader, Encoding.GetEncoding("UTF-8"));
string ReceiveString = r.ReadToEnd();
response.Close(); XmlDocument receivexml = new XmlDocument();
receivexml.LoadXml(ReceiveString);
XmlNodeReader Xmlreader = new XmlNodeReader(receivexml);
DataSet ds3 = new DataSet();
ds3.ReadXml(Xmlreader); DataTable table2 = null;
table2 = ds3.Tables[0]; if (ds3.Tables[0].Rows.Count != 0)
{
if (table2.Rows[0]["result"].ToString().Trim() == "Y")
{
oReader.Close();
}
else
{
oReader.Close();
}
}
else
{
oReader.Close();
}
}
StringBuilder strEncrypt = new StringBuilder();
strEncrypt.Append("marchant_id=" + MMS.AccountName.Trim());
strEncrypt.Append("version=bill_drawback_api_1");
strEncrypt.Append("command_type=001");
strEncrypt.Append("order_id=" + rif.resvnum);
strEncrypt.Append("amount=" + "2");
strEncrypt.Append("postdate=" + DateTime.Now.ToString());
strEncrypt.Append("txOrder=" + DateTime.Now.ToString("yyyyMMddHHmmss"));
strEncrypt.Append("merchant_key=" + merchant_key);
XmlDocument outxml = new XmlDocument();
string strData = "marchant_id=" + MMS.AccountName.Trim() + "&version=bill_drawback_api_1&command_type=001&order_id=" + rif.resvnum + "&amount=2" + "&postdate=" + DateTime.Now.ToString() + "&txOrder=" + DateTime.Now.ToString("yyyyMMddHHmmss") + "&merchant_key=" + merchant_key + "&mac=" + GetMD5(strEncrypt.ToString(), "utf-8").ToUpper();
bool bResult = true;
byte[] data = System.Text.Encoding.ASCII.GetBytes(strData);
HttpWebRequest request = WebRequest.Create("https://www.99bill.com/webapp/receiveDrawbackAction.do") as HttpWebRequest;
request.Method = "post";
request.AllowAutoRedirect = false;
request.ContentLength = data.Length;
request.Headers.Add("ContentType", "text/xml;charset = UTF-8"); //指定字符集
Stream oWriter = null;
try
{
oWriter = request.GetRequestStream();//连接post地址
oWriter.Write(data, 0, data.Length);//发送数据
oWriter.Close(); //关闭连接
bool b = request.Pipelined;
string address = request.Address.AbsoluteUri;
}
catch
{
oWriter.Close(); //关闭连接
bResult = false;
}
Stream oReader = null;
if (bResult)
{
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
oReader = response.GetResponseStream();
StreamReader r = new StreamReader(oReader, Encoding.GetEncoding("UTF-8"));
string ReceiveString = r.ReadToEnd();
response.Close(); XmlDocument receivexml = new XmlDocument();
receivexml.LoadXml(ReceiveString);
XmlNodeReader Xmlreader = new XmlNodeReader(receivexml);
DataSet ds3 = new DataSet();
ds3.ReadXml(Xmlreader); DataTable table2 = null;
table2 = ds3.Tables[0]; if (ds3.Tables[0].Rows.Count != 0)
{
if (table2.Rows[0]["result"].ToString().Trim() == "Y")
{
oReader.Close();
}
else
{
oReader.Close();
}
}
else
{
oReader.Close();
}
}
http://www.cnblogs.com/supers/articles/1327869.html
wc.Credentials = CredentialCache.DefaultCredentials;
log.Debug ( "sending the result to server" );
try {
wc.UploadString ( serverUrl, "POST", data);
log.Debug ( "sent" );
} catch ( WebException we ) {
log.Error ( we.Message );
}
}