c# https post 请求 如何传参?总是报400错误。

求大神,rest APi,url路径没有错,就是不知道参数错了没有,请大神指教。

byte[] byteArray = Encoding.UTF8.GetBytes(strxml.ToString());//需要传的参数
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri("需要访问的地址"));
webReq.Method = "POST";//GET-POST
webReq.ContentType = "text/xml";//传的参数格式
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);//写入参数
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
resultxml = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close();

private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
    return true; //总是接受     
}  

public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary parameters,Encoding charset)

{

HttpWebRequest request = null;

//HTTPSQ请求

X509Certificate certificate = new X509Certificate();
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

request = WebRequest.Create(url) as HttpWebRequest;

request.ProtocolVersion = HttpVersion.Version10;

request.Method = "POST";
request.ContentType = "application/json";
request.Accept = "application/json;";
//如果需要POST数据

if (!(parameters == null || parameters.Count == 0))

{

StringBuilder buffer = new StringBuilder();

int i = 0;

foreach (string key in parameters.Keys)

{

if (i > 0)

{

buffer.AppendFormat("&{0}={1}", key, parameters[key]);

}

else

{

buffer.AppendFormat("{0}={1}", key, parameters[key]);

}

i++;

}

byte[] data = charset.GetBytes(buffer.ToString());

using (Stream stream = request.GetRequestStream())

{

stream.Write(data, 0, data.Length);

}

}

return request.GetResponse() as HttpWebResponse;

}

protected void Button1_Click(object sender, EventArgs e)
{

    string url = "https://vraserver.mocha-dc.com/identity/api/tokens";
   // string url = "https://vraserver.mocha-dc.com/identity/api/tenants/dev/directories";
    Encoding encoding = Encoding.GetEncoding("utf-8");
    IDictionary<string, string> parameters = new Dictionary<string, string>();
    parameters.Add("username", "name");
    parameters.Add("password", "pwd");
    parameters.Add("tenant", "div");

   // Post1(url, parameters);

    HttpWebResponse response = CreatePostHttpResponse(url, parameters, encoding);
    //打印返回值  
    Stream stream = response.GetResponseStream();   //获取响应的字符串流  
    StreamReader sr = new StreamReader(stream); //创建一个stream读取流  
    string html = sr.ReadToEnd();   //从头读到尾,放到字符串html  
    Console.WriteLine(html);  
}

非常感谢,拿到了,谢谢。