【发布时间】:2016-04-22 23:23:20
【问题描述】:
我正在尝试进行 httpwebrequest,以连接客户的 api。这适用于大多数 api,但其中一个需要 ContentType = "multipart/form-data",这就是为什么我必须将它添加到我的请求中。但是自从我添加它后,我在使用 GetResponse 方法的那一行得到了一个 System.Net.WebException。我的 JsonRequest 是正确的,因为我在演示站点上尝试过,但我不知道如何处理这个异常!如果我不在 ContentType multipart/form-data 中,我会从 api 收到一条错误消息,即“并非所有参数都设置正确”。 我希望你能帮助我!
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = requestMethode;
httpWebRequest.Accept = "application/json";
httpWebRequest.ContentType = "multipart/form-data";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
string strResponse = "";
try
{
using (WebResponse httpResponse = httpWebRequest.GetResponse()) // error here
{
using (Stream responseStream = httpResponse.GetResponseStream())
{
using (StreamReader streamReader = new StreamReader(responseStream))
{
strResponse = streamReader.ReadToEnd();
}
}
}
}
catch (WebException exception)
{
throw exception;
}
JObject jobject = JObject.Parse(strResponse);
return jobject;
}
非常感谢!
【问题讨论】:
-
您收到的异常消息是什么?
-
如果您指定
multipart/form-dataContent-Type,为什么要向服务器发送一些JSON有效负载?这些是非常不同的事情。 -
@Darin,因为 api 不需要文件请求,这就是为什么我要另辟蹊径。但不幸的是,无论如何我都必须设置内容类型。
-
@Yacoub 这是一个 500 内部服务器错误
-
@Darin:这是 api 文档:i.materialise.com/api/docs/cart-item-creation-api
标签: c# json httpwebrequest multipartform-data