2013-12-09 52 views
0

我需要在控制台应用程序中模拟AJAX调用Web服务。有没有办法用HttpWebRequest来做到这一点?将JavaScript AJAX转换为HttpWebRequest代码

源请求:

变种的WebRequest = Sys.Net.WebServiceProxy.invoke( 'http://webserver.com/WS_Message.asmx', '的MyMethod',假,{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()); 
} 
+1

你能发布关于你期待什么以及你目前回复什么的更多信息? – Lankymart

+0

已经解决了我的问题。与不正确的标题有关。 –

回答

1

它看起来像你打电话到一个JavaScript(基于.NET)的Web服务。为什么不简单地将Web引用添加到您的控制台应用程序,并以这种方式调用它?

这比通过HttpWebRequest手动复制Web服务调用的工作要少得多。

0

我不得不使用Chrome开发人员控制台查看正确的http标题。我的问题与不正确的JSON字符串格式有关。

@ “{”, “P1” “: ”“ AA” “ ”“ P2 ”“: ”“ BB ”“ ”“ P3 ”“:123}”