【问题标题】:Convert JavaScript AJAX to HttpWebRequest code将 JavaScript AJAX 转换为 HttpWebRequest 代码
【发布时间】:2013-12-26 08:33:52
【问题描述】:

我需要在我的控制台应用程序中模拟对 Web 服务的 AJAX 调用。有没有办法用 HttpWebRequest 做到这一点?

来源请求:

var webRequest = Sys.Net.WebServiceProxy.invoke('http://webserver.com/WS_Message.asmx', '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());
}

【问题讨论】:

  • 您能否发布更多关于您期望什么以及您目前得到什么的信息?
  • 已经解决了我的问题。与不正确的标题有关。

标签: c# javascript asp.net .net asp.net-ajax


【解决方案1】:

看起来您正在使用 javascript 调用(基于 .NET)的 Web 服务。为什么不简单地为您的控制台应用程序添加一个 Web 引用,然后这样调用它?

这比尝试通过 HttpWebRequest 手动复制 Web 服务调用要少得多。

【讨论】:

    【解决方案2】:

    我必须使用 Chrome 开发者控制台才能看到正确的 http 标头。我的问题与不正确的 JSON 字符串格式有关。

    @"{""p1"": ""aa"", ""p2"": ""bb"", ""p3"": 123}"

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 2020-07-07
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多