1
<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 を使用せずに (C# で) 同等のポスト メソッドとリダイレクトを作成したいfrm.submit()

私はそのようなことを期待している 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

formandを使用した場合と同じ効果を得るには、postData に何を記述すればよいform.submit()でしょうか。前もって感謝します

4

3 に答える 3

1

投稿データは、URL エンコードされたフォーム データ、つまり文字で区切られたキー=値のペアである必要があります&UrlEncodeメソッドを使用して値をエンコードします。

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");
于 2012-11-01T08:29:30.777 に答える
0

PostData="Var1=xxx&Var2=yyyy...."

于 2012-11-01T08:28:18.347 に答える
0

POST 要求は、URL エンコーディングを使用してデータを送信する本文を提供します。

この方法を使用して、データをエンコードできます。

たとえば、次のようなコードを作成できます。

string ToQueryString(IEnumerable data)
{
    return string.Join("&", data.Select(d => HttpUtility.UrlEncode(d.ToString())));
}
于 2012-11-01T08:28:37.930 に答える