发送的multipart / form-data的内容类型请求 [英] Send multipart/form-data content type request
问题描述
后续的HTTP POST请求使用多/ form-data的内容类型发送数据。
The follow http post request send data using multipart/form-data content type.
-----------------------------27311326571405\r\nContent-Disposition: form-data; name="list"\r\n\r\n8274184\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="list"\r\n\r\n8274174\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="list"\r\n\r\n8274178\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="antirobot"\r\n\r\n2341234\r\n-----------------------------27311326571405\r\nContent-Disposition: form-data; name="votehidden"\r\n\r\n1\r\n-----------------------------27311326571405--\r\n
列表是输入名称。 8274184,8274174,8274178等都是输入值。但是,什么是27311326571405,27311326571405 ...等?我想用C#发送同样的请求,但我真的donnt知道在哪里可以得到这个数字。
List is an input name. 8274184, 8274174, 8274178 etc are input value. But what is 27311326571405, 27311326571405...etc? I want to send same request using c# but i really donnt know where i can to get this numbers.
推荐答案
--- 27311326571405
被称为边界,这是不应该出现在你发送和作为值之间的分隔符的数据的随机字符串。
---27311326571405
is called boundary and it is a random string that should never appear in the data you are sending and is used as separator between the values.
下面是发送这样的请求到指定地址的例子:
Here's an example of sending such a request to a given address:
class Program
{
static void Main()
{
var data = new List<KeyValuePair<string, string>>(new[]
{
new KeyValuePair<string, string>("list", "8274184"),
new KeyValuePair<string, string>("list", "8274174"),
new KeyValuePair<string, string>("list", "8274178"),
new KeyValuePair<string, string>("antirobot", "2341234"),
new KeyValuePair<string, string>("votehidden", "1"),
});
string boundary = "----MyAppBoundary" + DateTime.Now.Ticks.ToString("x");
var request = (HttpWebRequest)WebRequest.Create("http://example.com");
request.ContentType = "multipart/form-data; boundary=" + boundary;
request.Method = "POST";
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
foreach (var item in data)
{
writer.WriteLine("--" + boundary);
writer.WriteLine(string.Format("Content-Disposition: form-data; name=\"{0}\"", item.Key));
writer.WriteLine();
writer.WriteLine(item.Value);
}
writer.WriteLine(boundary + "--");
}
using (var response = request.GetResponse())
using (var responseStream = response.GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
这篇关于发送的multipart / form-data的内容类型请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!