高手看过来,如何用webrequest提交multipart/form-data类型的表格。(急!急!急!分不够自己说)
有一个multipart/form-data的form
我用下面的方式构造出的RequestStream是application/x-www-form-urlencoded类型,如何才能构造正确的multipart/form-data类型的RequestStream?
通过拦截socket发现multipart/form-data的提交是通过两次send实现的,一次send头,一次send参数这又如何做到的?webrequest可以自动实现么?
觉得分不够的可以在
http://community.csdn.net/Expert/topic/3562/3562119.xml?temp=.4532587
跟贴,还不够可以开贴
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HttpWebRequest req = (HttpWebRequest)
WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "multipart/form-data";
StringBuilder UrlEncoded = new StringBuilder();
Char[] reserved = {'?', '=', '&'};
byte[] SomeBytes = null;
if (paramList != null)
{
int i=0, j;
while(i<paramList.Length)
{
j=paramList.IndexOfAny(reserved, i);
if (j==-1)
{
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, paramList.Length-i)));
break;
}
UrlEncoded.Append(HttpUtility.UrlEncode(paramList.Substring(i, j-i)));
UrlEncoded.Append(paramList.Substring(j,1));
i = j+1;
}
SomeBytes = Encoding.GetEncoding("gb2312").GetBytes(UrlEncoded.ToString());
req.ContentLength = SomeBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();
}
else
{
req.ContentLength = 0;
}
构造