我对 WebApi 和 WebRequests 和其他东西完全陌生。
经过数小时的谷歌搜索,最后,我设法使用 C# 和 HttpWebRequest 进行 POST。
当我使用 Visual Studio 在调试模式下执行 HttpWebRequest 时,我没有遇到任何异常。
我的应用程序在我接受的情况下工作,我将数据发送到 webApi 服务器并取回数据。为了确定我的应用程序如何与 WebApi 服务器通信,我启动了 Fiddler Web Debugger。
在 POST 到 WebApi 期间,Fiddler 追逐 401 错误
{"Message":"Authorization has been denied for this request."}
在调试器中一步一步我资助以下代码行执行 401 错误
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url); wr.Credentials = new NetworkCredential(username, password); wr.Method = "POST"; wr.ContentType = "application/json"; byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(body); wr.ContentLength = byteArray.Length; using (System.IO.Stream dataStream = wr.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); //After this line of code Fidler Chace HTTP 401 }
稍后在代码中,当我执行 wr.GetResponse() 时,我确实得到了 200OK 状态。
我的问题是:
我是否需要重新设计我的代码以避免在 Fiddler 中出现这个错误?
除了使用 GetRequestStream() 之外,还有其他方法可以用 jsonSting 填充 HttpWebRequest 吗?