小编Dar*_*ler的帖子

.Net 4.0 HttpClient的用法?

我在.Net 4.0中尝试使用HttpClient.我读过一些文章说它在4.0中不再受支持但你仍然可以使用它吗?我已经包括了System.Net.Http;集会,但它不允许我提供必要的参数HttpClient.知道如何解决这个问题吗?

我已经加粗了错误发生的地方.

using (HttpClient http = new **HttpClient("{0}/v1/dm/labels/{1}.xml", MI_API_URL**))
        {
            http.**TransportSettings**.Credentials = new NetworkCredential(apiusername, apipassword);

            List<KeyValuePair<string, string>> parms = new List<KeyValuePair<string, string>>();
            parms.Add(new KeyValuePair<string, string>("Status", "Wiped"));

            HttpResponseMessage response = http.**Get**(new Uri("devices.xml", UriKind.Relative), parms);
            response.EnsureStatusIsSuccessful();
            responseoutput = response.Content.ReadAsString();
            xdoc.LoadXml(responseoutput);
Run Code Online (Sandbox Code Playgroud)

.net api dotnet-httpclient

9
推荐指数
1
解决办法
7143
查看次数

.net 4.5 ASP.Net Web API JSONP支持

有谁知道JSONP在.net 4.5 ASP.NET WEB API中是否支持返回?

对于早期版本的MVC.net或者.net,我发现了很多"自己动手",但似乎没有任何特定于以后的版本.

我意识到这可能是因为他们的早期版本将使用.net 4.5堆栈,但我很好奇是否有人已经被烘焙.

asp.net-mvc-4 .net-4.5 asp.net-web-api

9
推荐指数
1
解决办法
1万
查看次数

在自定义媒体类型中创建超媒体链接

我目前正在为RESTful api创建一组自定义媒体类型(例如application/vnd.mycompany.foo + xml),我试图找出两种不同的暴露超媒体链接的方式的优缺点.

如果我首先考虑其他媒体类型可能最好的起点是HTML.Html允许我创建链接,例如:

<image src="http://example.com/image.gif"/>
<a href="http://example.com/page.html"/>
<form action="http://example.com/page.html"/>
<link rel="stylesheet" type="text/css" href="theme.css" />
Run Code Online (Sandbox Code Playgroud)

这里有趣的是,在某些情况下,某些特定标签具有url属性,然后是使用rel属性定义关系的通用链接标记.

在AtomPub中,还有一些资源链接在一起的方式

<collection href="http://example.org/blog/main" >
         <atom:title>My Blog Entries</atom:title>
         <categories href="http://example.com/cats/forMain.cats" />
</collection>

<atom:category scheme="http://example.org/extra-cats/" term="joke" />
<atom:entry>
   <link rel="edit" href="http://example.org/edit/first-post.atom"/>
</atom:entry>
Run Code Online (Sandbox Code Playgroud)

我要问的问题是,何时使用具有关系的link元素更有意义,何时将属性添加到现有元素更有意义.

例如AtomPub链接可能已经完成

<collection>
      <link rel="source" href="http://example.org/blog/main"/>
         <atom:title>My Blog Entries</atom:title>
         <categories>
                <link rel="source" href="http://example.com/cats/forMain.cats"/>
         </categories>
</collection>

<atom:category term="joke">
     <link rel="scheme" href="http://example.org/extra-cats/"/>
<atom:category>
<atom:entry edit="http://example.org/edit/first-post.atom"/>
Run Code Online (Sandbox Code Playgroud)

通常情况下,在写这个问题时,答案似乎显而易见.必需的链接作为属性公开,可选的链接作为元素公开.但是,我会非常有兴趣听取别人对于如何表达链接的看法.

xml rest http media-type

8
推荐指数
1
解决办法
1370
查看次数

ASP.NET Web API中的回调方法

我有一个ASP.NET Web API服务器,必须与不同平台上的不同应用程序通信.现在我想创建一个类似回调的方法:客户端应用程序订阅它并等待服务器触发消息.

示例: 许多用户都在等待新产品在商店中可用 - 他们订阅此"事件".当产品到达商店时 - 每个客户都会收到一条消息,在某些情况下必须处理.

  1. 用户发送请求"订阅"
  2. 服务器收到"产品可用!"的请求
  3. 服务器向每个用户发送包含产品详细信息的消
  4. 用户的应用程序处理该消息

我试图在ASP.NET Web API中找到关于回调或双工的一些信息,但是一个建议 - 最好使用WCF来实现这种方法.

解决方案

  • 在每个客户端应用程序中创建类似计时器的东西,每N秒发送一个请求"产品是否可用?" 直到得到"假".当响应为真时 - 发送消息"获取产品详细信息".这会导致很多流量,如果有很多客户端使用这些定时器 - 那会很糟糕,不是吗?
  • 创建一个小的回调服务器(可能是WCF).但在这种情况下,此服务器与不同平台上的应用程序之间的通信会出现很多问题.
  • 也许在ASP.NET Web API中有一些解决方案,我错过了.

如果您有一些想法我可以如何解决这个问题,请给我一个建议.

感谢帮助.

asp.net-web-api

8
推荐指数
1
解决办法
9965
查看次数

有关RESTful Web API的API测试的一般建议

我正在寻找关于主要为RESTful Web API设置和执行API测试的一般工作流程的建议.

更具体地说,我有以下难点:

  1. 通过运行工具编写代码(如单元测试)或更多来完成API测试吗?
  2. API测试应该生成什么样的结果和报告?
  3. API测试应涵盖哪些类型的测试?

rest web-api-testing

8
推荐指数
1
解决办法
2961
查看次数

IHttpActionResult和Integration Testing Web API v2进入MS Test

VS2013根据我的EF上下文为我自动生成了一个web api v2控制器.我正在尝试对控制器的放置部分进行单元测试.无论我做什么,我都无法通过检查StatusCodeResult返回来获取断言.自动生成的代码如下所示:

 // PUT api/Vendor/5
    public IHttpActionResult PutVendor(int id, Vendor vendor)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        if (id != vendor.Id)
        {
            return BadRequest();
        }

        db.Entry(vendor).State = EntityState.Modified;

        try
        {
            db.SaveChanges();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!VendorExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return StatusCode(HttpStatusCode.NoContent);
    }
Run Code Online (Sandbox Code Playgroud)

我的集成测试如下所示:

        [TestMethod]
    public void PutVendor_UpdateVendorRecord_ReturnsTrue()
    {
        // Arrange
        //CleanUpVendors();

        var controller = new VendorController(ctx);
        const string vendorName = "Unit Test Company";

        // Add vendor to database
        ctx.Vendors.Add(new Vendor { …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing mstest asp.net-web-api

8
推荐指数
1
解决办法
1万
查看次数

如何从API管理中动态发现服务结构中托管的服务?

  1. 假设我在服务结构集群中托管了服务A和B. 它们分别在端口7001和7002上监听(在集群内).
  2. 假设我将服务结构负载均衡器配置为侦听端口8001并将请求转发到服务A的端口7001(在集群内)并侦听端口8002并将请求转发到服务B的端口7002(在集群内) .
  3. 假设我为服务A和B配置API管理,并将请求路由到负载均衡器上的适当端口.
  4. 这一切都有效.
  5. 现在,我想动态发现服务结构中托管的服务(来自API管理),并动态地在运行时路由请求,而不是手动映射每个服务的URL路由.
  6. 要做到这一点,我知道我必须编写一个策略(最有可能是C#)从某个地方查找这些信息.
  7. 但我不确定究竟要查询什么来查找服务结构集群中托管的负载平衡端口和服务.
  8. 我想在同一个服务结构集群中创建另一个服务C并使用它(来自API管理)来提供集群的内部信息.
  9. 但我无法找到查找本地服务端口信息或加载平衡服务端口信息的方法.

我该怎么办呢?

azure-service-fabric

8
推荐指数
1
解决办法
4528
查看次数

在其他数据库产品中是否存在与MS SQL"FOR XML PATH"相同的内容?

我目前正在使用Microsoft的FOR XML PATH功能以XML格式从MS SQL Server中提取数据.我非常喜欢这个功能,但是使用特定于供应商的功能总是很不舒服.

是否有其他主要数据库供应商有类似的东西?

编辑

让我更具体地说明我正在寻找的功能类型

在MS SQL中,您可以使用此查询

SELECT so.id AS '@Id',
       so.Code AS '@Code',  
       cu.Code AS 'Customer/@Code',
       cu.Name AS 'Customer/@Name',
       (SELECT Item_Num AS '@Item',
                pa.Code AS '@PartCode'
        FROM tblSalesItem si
            LEFT JOIN tblPart pa ON pa.Id = si.Part_Id
        WHERE si.SalesOrder_ID = so.Id 
        FOR XML PATH('SalesItem') , type) 
FROM tblSalesOrder so
    JOIN tblCustomer cu ON so.customer_id = cu.ID
FOR XML PATH('SalesOrder'), ROOT('SalesOrders')
Run Code Online (Sandbox Code Playgroud)

生成这个XML

<SalesOrders>
  <SalesOrder Id="13" Code="C1002     ">
    <Customer Code="ROBERTS   " Name="Roberts Equipment  Inc." />
    <SalesItem Item="1" PartCode="FP-0001" …
Run Code Online (Sandbox Code Playgroud)

xml sql

7
推荐指数
1
解决办法
9641
查看次数

ASP.NET WebApi测试 - 断言请求会返回404响应

我用以下方法创建了一个ApiController:

    public User Get(int id)
    {
        var user = DocumentSession.Load<User>(id);
        if(user!=null)
        {
            return Mapper.Map<User>(user); 
        }
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }
Run Code Online (Sandbox Code Playgroud)

我试图为这个方法编写一个测试,该测试断言当一个无效的id传递给该函数时,它会返回一个适当的404响应.

目前我有:

    [Test]
    public void get_invalid_user_returns_404()
    {
        Assert.Throws<HttpResponseException>(()=>_usersController.Get(1001));
    }
Run Code Online (Sandbox Code Playgroud)

这工作并通过,但它没有断言它是404响应,只是抛出了正确的异常类型.我该怎么做才能断言结果是404?

谢谢

asp.net-web-api

7
推荐指数
1
解决办法
1881
查看次数

ASP.Net Web API中的消息队列

我正在使用AngularJS和ASP.Net WebAPI开发客户端单页面应用程序(SPA).

SPA的一个功能包括上载大型CSV文件,在服务器上处理它,以及将输出返回给用户.

显然,这种计算不能在线完成,因此我实现了一个负责接收文件的UploadController,以及一个负责在计算完成时通知用户的PollingController.

客户端应用程序每隔几秒钟监视一次PollingController.

我没有消息队列的经验,但我的直觉告诉我他们在这种情况下是必需的.

您如何建议以非阻塞,高效的方式实现此功能?

图

举例将受到高度赞赏

ajax asp.net-mvc msmq polling asp.net-web-api

7
推荐指数
2
解决办法
5861
查看次数