【问题标题】:HttpWebRequest / HttpWebResponse Base 64 problemHttpWebRequest / HttpWebResponse Base 64 问题
【发布时间】:2009-08-12 11:33:24
【问题描述】:

我正在尝试发布到一个 url,以便生成一个页面。 该网址在我的应用程序的其他地方指定,并且来自银行。

我需要指定的参数是: Pareq - 这是一个长字符串,在我的应用程序的其他地方指定 TermUrl - 银行用来发回(我的应用程序)的 url MD - 一些用于识别订单的随机字符串。

这里的相关参数是pareq -

我在页面上有以下代码,最后是 Response.Write(response),用于根据请求创建页面。 但是,我收到从发布到 url- 返回的错误 PaReq 消息不是基于 64 编码的。

从我的代码中,你可以看到我已经尝试对它进行 base 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();

【问题讨论】:

    标签: c# asp.net payment-gateway


    【解决方案1】:

    在将 Base64 字符串与字符串连接之前,您需要对它进行编码(使用 Server.Encode)。

    【讨论】:

    • 你有例子吗?我似乎找不到 Server.Encode...?
    • @Alex,对不起,我忘了问你是使用 asp.net 还是 windowsforms,在这种情况下你可以使用 "HttpUtility.UrlEncode(string)" 代替。
    • 我使用了以下内容:字符串数据 = String.Format("PaReq={0}&TermUrl={1}&MD={2}", Server.UrlEncode(pareq), "www.return. com", "wsdfskdjglke"); Server.UrlEncode
    猜你喜欢
    • 2012-02-26
    • 2023-03-14
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多