我正在尝试发布到网址,以便生成网页。 该url在我的应用程序的其他地方指定,并且来自银行。
我需要指定的参数是: Pareq - 这是一个长字符串,在我的应用程序的其他地方指定 TermUrl - 银行用于回复的网址(我的申请) MD - 用于识别订单的一些随机字符串。
这里的相关参数是pareq -
我在页面上有以下代码,最后是Response.Write(响应),用于从请求创建页面。 但是,我收到从发布到网址的错误 - PaReq消息不是基于64编码的。
从我的代码中,你可以看到我试图基于64编码它,但在某个地方我出错....
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(acsUrl);
byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(pareq);
string data = String.Format("PaReq={0}&TermUrl={1}&MD={2}", System.Convert.ToBase64String(toEncodeAsBytes), "www.return.com", "wsdfskdjglke");
byte[] buffer = Encoding.UTF8.GetBytes(data);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = buffer.Length;
req.CookieContainer = new CookieContainer(); // enable cookies
Stream reqst = req.GetRequestStream(); // add form data to request stream
reqst.Write(buffer, 0, buffer.Length);
reqst.Flush();
reqst.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Stream resst = res.GetResponseStream();
StreamReader sr = new StreamReader(resst);
string response = sr.ReadToEnd();
答案 0 :(得分:0)
在使用字符串连接之前,需要对Base64字符串进行编码(使用Server.Encode)。