我用了如下的方法,发觉是可以的,你看下这样写是否正确,代码较多,我只大概描述一下:
定义一个boundary
[C#] 纯文本查看 复制代码 string boundary = "------httpboundary";
然后用下面的代码来加字符串参数
[C#] 纯文本查看 复制代码
StringBuilder s = new StringBuilder();
s.Append("--").Append(boundary).Append("\r\n");
s.Append("Content-Disposition: form-data; name=\"a\"\r\n\r\n11111111111111\r\n");
s.Append("--").Append(boundary).Append("\r\n");
s.Append("Content-Disposition: form-data; name=\"b\"\r\n\r\n222222\r\n");
AppendString(s.ToString()); --把该段字符串加入主byte[]
把以上的字符串s转成byte[]
接着用下面的代码把stream转成byte[],并加个上面的byte[]中
[C#] 纯文本查看 复制代码 s.Append("--").Append(boundary).Append("\r\n");
s.Append("Content-Disposition: form-data; name=\"d\"; filename=\"ddddd\"\r\n");
s.Append("Content-Type: application/octet-stream\r\n\r\n");
AppendString(s.ToString()); --把该段字符串加入主byte[]
Stream S = HttpContext.Current.Request.InputStream;
byte[] b = new byte[S.Length];
S.Read(b, 0, b.Length);
AppendBytes(b); --把stream加入主byte[]
AppendString("\r\n");
s.Append("--").Append(boundary).Append("--\r\n");
s.Append("\r\n"); --结束主byte[]
然后把上面得到的byte[]写入PostdataByte中,并修改
ContentType= "multipart/form-data; boundary=------------httpboundary";
代码如下:
[C#] 纯文本查看 复制代码 Method = "POST",
PostDataType = PostDataType.Byte,
PostdataByte = 主byte[],
ContentType = "multipart/form-data; boundary=------httpboundary",
ResultType = ResultType.String
我测试是通过了,但是感觉好麻烦,有简单点的方法吗
|