2009-08-12 5 views
0

Ich versuche, auf eine URL zu posten, um eine Seite zu generieren. Die URL ist an anderer Stelle in meiner Anwendung angegeben und stammt von einer Bank.HttpWebRequest/HttpWebResponse Base 64 Problem

Die Parameter i angeben müssen, sind: ParEQ - das ist eine lange Schnur, angegeben an anderer Stelle in meiner Anwendung TermUrl - eine URL verwendet die Bank (meine Anwendung) zu posten MD - einige zufällige Zeichenfolge zu identifizieren die Bestellung.

Der relevante Parameter ist hier die ParEQ -

ich den Code unten auf der Seite haben, und Response.Write (Antwort) am Ende, eine Seite aus der Anfrage zu erstellen. Allerdings bekomme ich einen Fehler von der Posted in url- PaReq Nachricht nicht based64 codiert.

Von meinem Code können Sie i 64 kodieren sehen habe versucht, es zu stützen, aber irgendwo falsch, ich werde ....

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

Antwort

0

Sie benötigen zu kodieren (mit Server.Encode) Base64-Zeichenfolge, bevor Sie sie mit Ihrer Zeichenfolge verbinden.

+0

Haben Sie ein Beispiel? Ich kann nicht scheinen, Server.Encode zu finden ...? – Alex

+0

@Alex, tut mir leid, ich habe vergessen, Sie zu fragen, wenn Sie asp.net oder WindowsForms verwenden, in diesem Fall können Sie stattdessen "HttpUtility.UrlEncode (string)" verwenden. – Cleiton

+0

Ich habe folgendes verwendet: string data = String.Format ("PaReq = {0} & TermUrl = {1} & MD = {2}", Server.UrlEncode (pareq), "www.return.com", "wsdfskdjglke "); Server.UrlEncode – Alex

Verwandte Themen