如何在c#中使用Post to page传递参数

时间:2017-03-19 13:20:14

标签: c# php asp.net post

我有一个网站,我必须登录到另一个网站。两个网站访问相同的数据库。我知道我们可以使用DB来做,但客户端不接受。所以我们创建了一个中间页面来做到这一点。我们通过在查询字符串中发送数据来尝试它。但是当我们进行加密时,URL的大小会变大。所以我与他在PHP团队的一位高级负责人讨论过,他让我用POST方法在网站上发布数据。我不知道我怎么能这样做。

请建议。

以下是我的代码:

第一个网站上的登录页面:

Response.Redirect(http://ghhghg.com/TestingLogin.aspx?jaj=" +hdfUserName.Value.Trim() + "&ghhhg=" + hdfpassword.Value.Trim();

“TestingLogin”页面的页面加载:

 string username = string.Empty;
    string password = string.Empty;

    if (!string.IsNullOrEmpty(Request.QueryString["jaj"]))
    {
        username = Convert.ToString(Request.QueryString["jaj"]);
    }

    if (!string.IsNullOrEmpty(Request.QueryString["ghhhg"]))
    {
        password = Convert.ToString(Request.QueryString["ghhhg"]);
    }

我已从上面的代码中删除了加密。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

使用他的代码更好地发布在服务器端,我使用的代码已经存在了几年,

c#代码

 public  string HttpPost(string URI, string Parameters)
    {
        System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
      //  req.Proxy = new System.Net.WebProxy(ProxyString, true);
        //Add these, as we're doing a POST
        req.ContentType = "application/x-www-form-urlencoded";
        req.Method = "POST";
        //We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value&
        byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
        req.ContentLength = bytes.Length;
        System.IO.Stream os = req.GetRequestStream();
        os.Write(bytes, 0, bytes.Length); //Push it out there
        os.Close();
        System.Net.WebResponse resp = req.GetResponse();
        if (resp == null) return null;
        System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
        return sr.ReadToEnd().Trim();
    }

我希望这会对你有所帮助:)。