asp.net - 如何从.NET调用node.js REST API

标签 asp.net node.js api rest unit-testing

如果我将下面的 jquery 代码放在 html 页面内的脚本标记内,并将该 html 页面拖到 Web 浏览器中,则会调用 URL 中指定的 API,并收到 JSON 格式的响应。所以这效果很好。

我想使用.NET来调用node.js中的其余API的原因是因为我想使用Visual Studio中存在的单元测试实用程序。

因此,当我开始单元测试时,应该调用在node.js 中进行的REST API,然后我可以使用assert.AreEqual 在返回的json 格式中检查我想要的任何内容。

我用谷歌搜索了很多,有几个例子 ASP.NET Web API 2 中的单元测试 Controller ,但我不想对 Controller 进行单元测试。我只想在开始单元测试时调用 REST API(用 Node.js 制作)。

我认为按照我想要的方式使用 .NET 可能相当罕见。

如果无法按照我想要的方式使用 .NET 和单元测试 我将使用另一个测试框架。 我希望从这里得到一些帮助。

希望你明白我的意思。

$.ajax({
    type: 'GET',
    url: 'http://10.1.23.168:3000/api/v1/users/1',
    dataType: 'json',
    async: false,
    headers: {
    'Authorization': 'Basic ' + btoa('DEFAULT/user:password')
    },
    success: function(response) {
        //your success code
        console.log(response);
    },
    error: function (err) {
        //your error code
        console.log(err);   
    }   
});

非常感谢

最佳答案

基本上,您需要做的是从 C# 测试代码中调用 node.js 的 API,就像使用 jQuery 调用它一样。有几种方法可以做到这一点:

  1. 使用 HttpWebRequest 类 https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest%28v=vs.110%29.aspx
  2. 使用 HttpClient 类 https://msdn.microsoft.com/en-us/library/system.net.http.httpclient%28v=vs.118%29.aspx它更加“RESTable”,因为它公开了直接调用 HTTP 方法(如 GET、PUT、POST 和 DELETE 方法)的方法。
  3. 第三方软件 http://restsharp.org/

一般来说,我推荐方法#2。

关于asp.net - 如何从.NET调用node.js REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35886247/

相关文章:

c# - 有关 ASP.NET 2.0 应用程序设计的问题

node.js - 当一个模块位于另一模块的父目录中时,模块之间存在循环依赖关系,导入的模块是未定义的

node.js - Sinon 在 NodeJS Controller 中模拟 Promise.all

python - 如何合并两个包含具有相同签名的方法的Python类?

ios - 如何使用 node.js 保护我的 api,并且只有我的应用程序正在使用此 api

c# - 客户端和 WCF 服务之间的身份验证失败

jquery - 禁用跨度在 Firefox 上不起作用

c# - 我在属性 setter 中进入无限循环

node.js - Firebase Node.JS 管理 SDK 发送验证电子邮件

ruby - 如何使用 Paypal 的 Adaptive Payments API 和 Ruby 避免身份验证和时间问题?