2009-08-12 4 views
0

私は、ページを生成するために、URLに投稿しようとしています。 URLは私のアプリケーションのどこかで指定され、銀行から発信されます。HttpWebRequest/HttpWebResponse Base64の問題

私は指定する必要があるパラメータは次のとおりです。 Pareq - 識別するためにいくつかのランダムな文字列 - 銀行は(私のアプリケーション) MDに戻ってポストに使用するURL - これが私のアプリケーション TermUrlの別の場所で指定された長い文字列であり、オーダー。

ここでは関係のパラメータはpareqある -

私がリクエストからページを作成するには、末尾に以下のページ上のコード、およびResponse.Writeを(レスポンス)を持っています。 しかし、投稿されたurl- PaReqメッセージは、64エンコードされていないメッセージから返されました。あなたは(Server.Encodeを使用して)エンコードする必要があり、私のコードから

、あなたは私が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

あなたあなたの文字列と連結する前にBase64文字列。

+0

例がありますか?私はServer.Encodeを見つけることができない...? – Alex

+0

@Alex、申し訳ありませんが、asp.netまたはwindowsformsを使用しているかどうか尋ねるのを忘れました。この場合、代わりに "HttpUtility.UrlEncode(string)"を使用できます。 – Cleiton

+0

私は以下を使用しました: 文字列データ= String.Format( "PaReq = {0}&TermUrl = {1}&MD = {2}"、Server.UrlEncode(pareq)、 "www.return.com"、 "wsdfskdjglke "); Server.UrlEncode – Alex

関連する問題