c# - 发布方法并使用某些值重定向而不使用 Form C#

标签 c# asp.net .net http post

<form action="https://somewebsiteaddrest" method="post">
   <input name="Var1"  type="hidden" value="Variable 1 value" />
   <input name="Var2"  type="hidden" value="Variable 2 value" />
   <input name="Var3"  type="hidden" value="Variable 3 value" />
   <input name="Var4"  type="hidden" value="Variable 4 value" />
   <input name="Var5"  type="hidden" value="Variable 6 value" />
   <input type="submit" value="Go now" />
</form>

我想在不使用此表单和 javascript frm.submit();

的情况下创建相等的 post 方法和重定向(在 C# 中)

我有一个 C# 代码片段,我希望它能完成这些工作。

    WebRequest request = WebRequest.Create(url);
    request.Method = "POST";
    string postData = "What to write here? here should be variable i guess.";
    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = byteArray.Length;
    Stream dataStream = request.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();
    WebResponse response = request.GetResponse();
    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();
    Console.WriteLine(responseFromServer);
    reader.Close();
    dataStream.Close();
    response.Close();


string postData

要在 postData 中写入什么才能获得与使用 formform.submit() 相同的效果?提前致谢

最佳答案

发布数据应该是 URL 编码的表单数据,即由 & 字符分隔的键=值对。使用 UrlEncode method对值进行编码:

string postData =
  "Var1=" + HttpUtility.UrlEncode("Variable 1 value")+
  "&Var2=" + HttpUtility.UrlEncode("Variable 2 value")+
  "&Var3=" + HttpUtility.UrlEncode("Variable 3 value")+
  "&Var4=" + HttpUtility.UrlEncode("Variable 4 value")+
  "&Var5=" + HttpUtility.UrlEncode("Variable 6 value");

关于c# - 发布方法并使用某些值重定向而不使用 Form C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13173354/

相关文章:

c# - 通过 linq 解析 xml

asp.net - 母版页显示随授权

javascript - 通过 javascript 将复杂参数传递给 Web API 服务

.net - 如何从第一次单击打开 Datagridview 单元格的组合框

.net - 未找到类型 'elements' 上的公共(public)成员 'DBNull'

c# - 如何告诉 ASP.NET 不要在请求中插入控件的值?

c# - ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

c# - 如何通过 C# 将可空整数列的空值插入 SQL 表

c# - 调用JSON web服务时如何获取异常信息

c# - 在 C# 中以逗号分隔的字符串转换数据表列值