2016-05-23 11 views
0

私は支払いゲートウェイを実装しようとしています。最後のステップでは、特定のURLにデータを投稿してからクライアントをリダイレクトする必要があります。 asp.netでそのように簡単です。私はそれを行うためにJavaスクリプトを書きました。私はこれを次のように呼びます:投稿とWCFサービスのリダイレクト

ClientScript.RegisterStartupScript(typeof(Page), "ClientScript", "<script language='javascript' type='text/javascript'> postRefId('" + "13" + "');</script> ", false); 

しかし、今私はwcfサービスで同じことをしたいと思います。どうすればいいのか分かりません。私はthisの記事を見つけましたが動作しません。 また、私はこれを試して、それは地獄の動作しませんでした:

var request = (HttpWebRequest)WebRequest.Create(url); 
request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = body.Length; 
using (var writer = new StreamWriter(request.GetRequestStream())) 
    writer.Write(body); 

HttpContext.Current.Response.Redirect(url); 

答えて

0

は最終的に私は答えを見つけます。 wcfサービスでリダイレクトや投稿ができないようです。私は自分のプロジェクトにaspxページを追加しました。その後、私はこのようなこのページにリダイレクト:リダイレクトと投稿するためには、私のページロードイベントで

public class RemotePost 
{ 
    private string url; 
    private string method; 
    private Dictionary<string, string> inputs; 

    public string Url 
    { 
     set { url = value; } 
     get { return url; } 
    } 
    public string Method 
    { 
     set { method = value; } 
     get { return method; } 
    } 
    public Dictionary<string, string> Inputs 
    { 
     set { inputs = value; } 
     get { return inputs; } 
    } 


    public RemotePost(string url, string method = "post") 
    { 
     Url = url; 
     Method = method; 
     Inputs = new Dictionary<string, string>(); 
    } 
    public void PostAndRedirect() 
    { 
     var postString = new StringBuilder(); 
     postString.Append("<html><head>"); 
     postString.Append("</head><body onload=\"document.form1.submit();\">"); 
     postString.Append("<form name=\"form1\" method=\"" + Method + "\" action=\"" + Url + "\" >"); 

     foreach (KeyValuePair<string, string> oPar in Inputs) 
      postString.Append(string.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", oPar.Key, oPar.Value)); 

     postString.Append("</form>"); 
     postString.Append("</body></html>"); 

     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.Write(postString.ToString()); 
     HttpContext.Current.Response.End(); 
    } 
    public void Add(string name, string value) 
    { 
     lock (Inputs) 
      Inputs.Add(name, value); 
    } 
} 

 WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Redirect; 
     WebOperationContext.Current.OutgoingResponse.Location = "mypage.aspx?123456"; 

はその後、私はこのクラスを使用します。この方法で私はリダイレクトし、wcfサービスに投稿することができます。 希望することができます。

関連する問題