【发布时间】:2017-08-15 12:41:08
【问题描述】:
我遇到了这个错误:HTTP 400 Bad Request,这可能是什么错误?如何检查 API 的参数是否正确?
我尝试了网上建议的解决方案,但仍然没有运气。 谁能建议如何解决这个问题?
string url = "/api/customers/reconnect/"; //sample url
string parameters = new JavaScriptSerializer().Serialize(new {
accountNumber = info.accountNumber,
serviceNumber = info.serviceNumber,
lastName = info.lastName,
processType = info.processType,
reconnectReason = info.reconnectReason,
priName = info.priName,
requestDate = info.requestDate,
Amount = info.amount,
Email = info.email,
priName2 = info.priName2,
withReconnectFee = info.withreconnectFee,
contactNo2 = info.contactNo2,
stmtFaxNo = info.stmtFaxNo
});
HttpVerb method = HttpVerb.POST;
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = method.ToString();
request.ContentLength = 0;
request.ContentType = ContentType;
request.Accept = "application/json";
var encoding = new UTF8Encoding();
var bytes = encoding.GetBytes(parameters); //Encoding.GetEncoding("iso-8859-1").GetBytes(parameters);
request.ContentLength = bytes.Length;
using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, 0, bytes.Length);
writeStream.Close();
}
using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
using (var responseStream = response.GetResponseStream())
{
if(responseStream != null)
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}
}
if (response.StatusCode == HttpStatusCode.OK)
{
var jsonVal = JObject.Parse(responseValue);
result = (string)jsonVal["result"].ToString();
}
【问题讨论】:
-
I'm encountering this error在哪一行? -
在这一行:使用 (var response = (HttpWebResponse)request.GetResponse())
-
这是我尝试删除 request.ContentLength 行时遇到的确切错误:[+ $exception {"要写入流的字节超过指定的 Content-Length 字节大小。"} 系统.Exception {System.Net.ProtocolViolationException} ]
-
request.Method = method.ToString();- 你能交叉检查这是否将Method设置为“POST”吗? -
嗨!是的,这是一个post方法。初始化就在那里 HttpVerb method = HttpVerb.POST;
标签: c#