C# 将JavaScript AJAX转换为HttpWebRequest代码

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

我需要在控制台应用程序中模拟对web服务的AJAX调用。有没有办法通过HttpWebRequest实现这一点

来源请求:

var webRequest=Sys.Net.webservicecoproxy.invoke(“”,'MyMethod',false,{p1:aa,p2:bb,p3:123},onSuccess,onFailure,userContext,timeout,enableJsonp,jsonpCallbackParameter)

不起作用的示例:

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}


你能发布更多关于你期望的和你现在得到的信息吗?已经解决了我的问题。与不正确的标题相关。