私は、ページを生成するために、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();
例がありますか?私はServer.Encodeを見つけることができない...? – Alex
@Alex、申し訳ありませんが、asp.netまたはwindowsformsを使用しているかどうか尋ねるのを忘れました。この場合、代わりに "HttpUtility.UrlEncode(string)"を使用できます。 – Cleiton
私は以下を使用しました: 文字列データ= String.Format( "PaReq = {0}&TermUrl = {1}&MD = {2}"、Server.UrlEncode(pareq)、 "www.return.com"、 "wsdfskdjglke "); Server.UrlEncode – Alex