我在一个页面里通过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();                        
                    }
                }

解决方案 »

  1.   

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

  2.   

    不能正确解析
    http://www.cnblogs.com/supers/articles/1327869.html
      

  3.   

    试试 WebClient ?            using ( WebClient wc = new WebClient () ) {
                    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 );
                    }
                    
                }