C# 将JavaScript AJAX转换为HttpWebRequest代码
我需要在控制台应用程序中模拟对web服务的AJAX调用。有没有办法通过HttpWebRequest实现这一点 来源请求: var webRequest=Sys.Net.webservicecoproxy.invoke(“”,'MyMethod',false,{p1:aa,p2:bb,p3:123},onSuccess,onFailure,userContext,timeout,enableJsonp,jsonpCallbackParameter) 不起作用的示例:C# 将JavaScript AJAX转换为HttpWebRequest代码,c#,javascript,asp.net,.net,asp.net-ajax,C#,Javascript,Asp.net,.net,Asp.net Ajax,我需要在控制台应用程序中模拟对web服务的AJAX调用。有没有办法通过HttpWebRequest实现这一点 来源请求: var webRequest=Sys.Net.webservicecoproxy.invoke(“”,'MyMethod',false,{p1:aa,p2:bb,p3:123},onSuccess,onFailure,userContext,timeout,enableJsonp,jsonpCallbackParameter) 不起作用的示例: HttpWebRequest
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://webserver.com/WS_Message.asmx/MyMethod");
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
byte[] _bytes= Encoding.UTF8.GetBytes("{p1:aa,p2:bb,p3:123}");
request.ContentLength = _bytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(_bytes, 0, _bytes.Length);
stream.Close();
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
Console.WriteLine(reader.ReadToEnd());
}
看起来您在用javascript调用一个基于(.NET)的web服务。为什么不简单地在你的控制台应用程序中添加一个web引用,并这样称呼它呢
与试图通过HttpWebRequest手动复制web服务调用相比,这要少得多。我不得不使用Chrome开发者控制台查看正确的http头。我的问题与不正确的JSON字符串格式有关 @{“p1”:“aa”,“p2”:“bb”,“p3”:“123}
你能发布更多关于你期望的和你现在得到的信息吗?已经解决了我的问题。与不正确的标题相关。