WebService ASP.NET MVC 3 发送和接收

2024-05-15

这几天我一直在绞尽脑汁思考如何满足新的要求。

我有两个网站。第一个让用户填写申请表。第二个网站是用于管理用户应用程序的内部网站。我需要开发一个“Web 服务”,将应用程序数据从网站 1 发送到网站 2,并向网站 2 返回成功或失败的响应。我以前从未做过网络服务,我对从哪里开始有点困惑。我一直在网上阅读各种示例,但它们似乎都只是构建网络服务的起点......没有具体的示例。

那么,对于发布数据网站 1,我的控制器方法会是什么样子?我是否使用Json将数据发布到网站2?它的例子会是什么样子?指向网站 2 的方法中是否存在某种形式的重定向?

那么,为了将响应发布回网站 2,该控制器方法会是什么样子?我假设我会再次使用 Json 将响应发送回网站 1?该方法中是否存在某种形式的重定向指向网站 1?


我将使用 JSON 并将应用程序 POST 到 Web 服务。

首先,我假设应用程序数据包含在某种类型的对象中。使用JSON.Net http://james.newtonking.com/projects/json-net.aspx将对象序列化为 JSON。它看起来类似于以下代码。

var application = new Application();
string serializedApplication = JsonConvert.Serialize(application);

其次是发布您的端点的代码(Web 服务、mvc 操作)。为此,您需要向端点发出 HTTP 请求。以下代码是我用来发布代码的代码。

    public bool Post(string url, string body)
    {
        //Make the post
        ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;

        var bytes = Encoding.Default.GetBytes(body);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        Stream stream = null;
        try
        {
            request.KeepAlive = false;
            request.ContentLength = bytes.Length;
            request.ContentType = "application/x-www-form-urlencoded";
            request.Timeout = -1;
            request.Method = "POST";
            stream = request.GetRequestStream();
            stream.Write(bytes, 0, bytes.Length);

        }
        finally
        {
            if (stream != null)
            {
                stream.Flush();
                stream.Close();
            }
        }

        bool success = GetResponse(request);

        return success;
    }

    public bool GetResponse(HttpWebRequest request)
    {
        bool success;

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {

            using (Stream responseStream = response.GetResponseStream())
            {
                if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created)
                {
                    throw new HttpException((int)response.StatusCode, response.StatusDescription);
                }

                var end = string.Empty;
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    end = reader.ReadToEnd();
                    reader.Close();

                    success = JsonConvert.DeserializeObject<bool>(end);
                }

                response.Close();
            }
        }

        return success;
    }

现在您可以将 JSON POST 到端点并接收响应,下一步是创建端点。以下代码将帮助您开始使用 mvc 中的端点,该端点将接收应用程序并对其进行处理。

    [HttpPost]
    public ActionResult SubmitApplication()
    {
        //Retrieve the POSTed payload
         string body;
         using (StreamReader reader = new StreamReader(Request.InputStream))
         {
             body = reader.ReadToEnd();
             reader.Close();
         }

         var application = JsonConvert.Deserialize<Application>(body);

         //Save the application
         bool success = SaveApplication(application);

         //Send the server a response of success or failure.
        return Json(success);
    }

上面的代码是一个好的开始。请注意,我没有测试过这段代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebService ASP.NET MVC 3 发送和接收 的相关文章

随机推荐

  • 组和平均 NumPy 矩阵

    假设我有一个任意的 numpy 矩阵 如下所示 arr 6 0 12 0 1 0 7 0 9 0 1 0 8 0 7 0 1 0 4 0 3 0 2 0 6 0 1 0 2 0 2 0 5 0 2 0 9 0 4 0 3 0 2 0 1 0
  • PHP括号少IF条件不接受多个语句

    我从来都不喜欢控制结构中的括号 直到今天我才意识到它如何只接受括号内的一条语句而不是 if 条件 如果我有多个语句 它会抛出语法错误 这是 PHP 的工作方式还是我的 IDE 有问题 显然错误很明显 但我只是想确保这是正常的 如果您有任何其
  • Webpack 和 Angular HTML 图像加载

    我一直对 webpack 和 Angular 感到头疼 这可能有一个简单的答案 但我无法弄清楚 我已经阅读了堆栈溢出中关于这个主题的几乎所有答案 但都无济于事 我有一个像这样的 html 页面 还有其他包含图像的模板 img
  • Amcharts 图表 - 图表列到自定义 URL 的超链接以在新选项卡/窗口中打开

    我正在尝试制作一个 amcharts 图表 其中的列链接到自定义网址 并希望网址在新选项卡 窗口中打开 我尝试将此代码添加到图形对象中 但它不起作用 它在同一选项卡 窗口中打开链接 listeners event clickItem met
  • 如何在 scala repl 和 sbt 控制台中关闭/打开 typer 阶段

    是否可以在不退出当前会话的情况下切换阶段 我尝试进入 power 模式 但它仍然不打印类型 在SBT中只需添加以下设置 set scalacOptions in Compile console Xprint typer 在 REPL 中你可
  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • 无法使用 BeautifulSoup 和 Requests 抓取下拉菜单

    我想抓取百年灵网站上的产品页面以获取各种信息 示例页面 https www breitling com gb en watches navitimer b01 chronograph 46 AB0127211C1A1 https www b
  • Twitter Bootstrap 轮播在加载时自动播放

    使用twitter bootstrap框架 如何调用轮播来 自动滑动 这意味着当页面加载时 轮播会自动滚动 我尝试过 javascript onLoad click 函数 a 下一个链接的 但这不起作用 你应该这样做Twitter Boot
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • Android Gradle 问题 - Flutter / Dart

    我的 Gradle 同步有问题 我使用 IntelliJ 和 Android Studio 构建 Flutter Dart 应用程序 我添加了 2 个新的依赖项 现在 Gradle 出现了问题 在 Android Studio 中一切正常
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • 在scala 2.13中,为什么有时无法显式调用类型类?

    这是 Shapeless 2 3 3 中的一个简单示例 val book author gt gt Benjamin Pierce title gt gt Types and Programming Languages id gt gt 2
  • $http.get() 与 JSON 数据

    我正在编写一个服务器应用程序 并希望客户端使用正文中的数据来参数化我的 GET 方法 如下所示 http v GET http localhost 3000 url text 123 foo bar GET url HTTP 1 1 Acc
  • 通知声音不适用于 api 10 android

    我用这个功能来显示状态notification 一切正常 但没有声音播放notification public void notifiction main String ticker String title String text int
  • 你如何在react-native中实现捏合缩放?

    我一直在研究 PanResponder 我当前的工作假设是 我将检测是否有两个触摸正在向外移动 如果是 则增加元素大小onPanResponderMove功能 这似乎是一种混乱的方法 有没有更顺畅的方法呢 如果您只需要简单的捏缩放功能 只需
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph
  • Android NDK 支持区域设置吗?

    我真正想做的就是使用格式化日期strftime x 以正确的顺序 在大多数平台上调用setlocale 足够 在 Android 上 我不断收到 美国日期 那么 Android 不支持语言环境吗 No setlocale and strft
  • Tipfy:如何在模板中显示blob?

    鉴于在 gae 上使用tipfy http www tipfy org python 以下模型 greeting avatar db Blob avatar 显示 blob 此处为图像 的模板标签是什么 在这种情况下 斑点是一个图像 这很棒
  • WebService ASP.NET MVC 3 发送和接收

    这几天我一直在绞尽脑汁思考如何满足新的要求 我有两个网站 第一个让用户填写申请表 第二个网站是用于管理用户应用程序的内部网站 我需要开发一个 Web 服务 将应用程序数据从网站 1 发送到网站 2 并向网站 2 返回成功或失败的响应 我以前