2009-08-12 96 views
0

我試圖張貼到一個網址,以生成一個頁面。 該網址在我的申請中的其他地方指定,並源自銀行。的HttpWebRequest/HttpWebResponse基地64問題

我需要指定的參數有: Pareq - 這是一個長的字符串,在我的應用 TermUrl未列名 - 一個url銀行使用回發到(我的應用程序) MD - 一些隨機字符串,以確定命令。

這裏的相關參數是pareq -

我在網頁上有下面的代碼,並回復於(響應)末,從請求創建一個頁面。 但是,我得到一個錯誤返回從發佈到url- PaReq消息不based64編碼。

從我的代碼,你可以看到我一直在努力,基地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

你需要編碼(使用Server.Encode)您Base64字符串,然後用字符串連接。

+0

你有個例子嗎?我似乎無法找到Server.Encode ...? – Alex 2009-08-12 12:24:35

+0

@Alex,對不起,我忘了問你是否使用asp.net或windowsforms,在這種情況下你可以使用「HttpUtility.UrlEncode(string)」來代替。 – Cleiton 2009-08-12 12:56:52

+0

我使用了以下內容: string data = String.Format(「PaReq = {0}&TermUrl = {1}&MD = {2}」,Server.UrlEncode(pareq),「www.return.com」,「wsdfskdjglke 「); Server.UrlEncode – Alex 2009-08-12 13:57:18