【发布时间】:2015-09-05 11:31:15
【问题描述】:
我正在使用以下代码发布具有multipart/form-data 内容类型的请求,但出现异常:
远程服务器返回错误:(532)。
我该如何解决这个问题?
public void request222(string cgid)
{
NameValueCollection nvc = new NameValueCollection();
nvc.Add("action:WebManager", "OK");
nvc.Add("cg_id", "" + cgid + "");
var boundary = "---------------------------DateTime.Now.Ticks.ToString("x")";
//creating request
var wr = (HttpWebRequest)WebRequest.Create("http://189.126.121.79:8093/API/CCG");
wr.ContentType = "multipart/form-data; boundary=" + boundary;
wr.Method = "POST";
wr.KeepAlive = true;
//sending request
using (var requestStream = wr.GetRequestStream())
{
using (var requestWriter = new StreamWriter(requestStream, Encoding.UTF8))
{
//params
const string formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";
foreach (string key in nvc.Keys)
{
requestWriter.Write(boundary);
requestWriter.Write(String.Format(formdataTemplate, key, nvc[key]));
}
requestWriter.Write("\r\n--" + boundary + "--\r\n");
}
}
//reading response
try
{
using (var wresp = (HttpWebResponse)wr.GetResponse())
{
if (wresp.StatusCode == HttpStatusCode.OK)
{
using (var responseStream = wresp.GetResponseStream())
{
if (responseStream == null)
using (var responseReader = new StreamReader(responseStream))
{
string s= responseReader.ReadToEnd();
}
}
}
throw new ApplicationException("Error Server status code: " + wresp.StatusCode.ToString());
}
}
catch (Exception ex)
{
throw new ApplicationException("Error while uploading file", ex);
}
}
【问题讨论】:
-
这是服务器错误,因此您的请求可能无效。无论是因为它是语义错误的 HTTP 还是根据 API 的错误请求消息,您都可以弄清楚。
标签: c# http post multipartform-data