我正在使用C#的WebRequest和HttpClient向一个API发送POST请求,但总是从API那里收到一个错误消息,该消息称您在标头中发布了无效数据。但问题在于,当我使用Chrome扩展程序“高级REST客户端”发送相同的数据时,它可以正常工作,并且我比较了两个请求,没有任何不同之处。我已经附上了两个请求和我的代码,请有人帮忙找出问题所在。
这是来自REST客户端应用的请求:
这是来自REST客户端应用的请求:
这是来自C#的请求
这里是我的C#代码
string item = "<?xml version=\"1.0\" encoding=\"UTF - 8\"?>" +
"<request>" +
"<Username>admin</Username>" +
"<Password>" + password + "</Password>" +
"<password_type>4</password_type>" +
"</request> ";
var request = (HttpWebRequest)WebRequest.Create("http://192.168.8.1/api/user/login");
request.Method = "POST";
request.Headers["_RequestVerificationToken"]= Token;
request.Headers["Cookie"] = Sess;
byte[] bytes = Encoding.UTF8.GetBytes(item);
request.ContentType = "application/xml;charset=UTF-8";
request.ContentLength = bytes.Length;
Stream streamreq = request.GetRequestStream();
streamreq.Write(bytes, 0, bytes.Length);
streamreq.Close();
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var result = reader.ReadToEnd();
}