我在.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) 有谁知道JSONP在.net 4.5 ASP.NET WEB API中是否支持返回?
对于早期版本的MVC.net或者.net,我发现了很多"自己动手",但似乎没有任何特定于以后的版本.
我意识到这可能是因为他们的早期版本将使用.net 4.5堆栈,但我很好奇是否有人已经被烘焙.
我目前正在为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)
通常情况下,在写这个问题时,答案似乎显而易见.必需的链接作为属性公开,可选的链接作为元素公开.但是,我会非常有兴趣听取别人对于如何表达链接的看法.
我有一个ASP.NET Web API服务器,必须与不同平台上的不同应用程序通信.现在我想创建一个类似回调的方法:客户端应用程序订阅它并等待服务器触发消息.
示例: 许多用户都在等待新产品在商店中可用 - 他们订阅此"事件".当产品到达商店时 - 每个客户都会收到一条消息,在某些情况下必须处理.
我试图在ASP.NET Web API中找到关于回调或双工的一些信息,但是一个建议 - 最好使用WCF来实现这种方法.
如果您有一些想法我可以如何解决这个问题,请给我一个建议.
感谢帮助.
我正在寻找关于主要为RESTful Web API设置和执行API测试的一般工作流程的建议.
更具体地说,我有以下难点:
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) 我该怎么办呢?
我目前正在使用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) 我用以下方法创建了一个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?
谢谢
我正在使用AngularJS和ASP.Net WebAPI开发客户端单页面应用程序(SPA).
SPA的一个功能包括上载大型CSV文件,在服务器上处理它,以及将输出返回给用户.
显然,这种计算不能在线完成,因此我实现了一个负责接收文件的UploadController,以及一个负责在计算完成时通知用户的PollingController.
客户端应用程序每隔几秒钟监视一次PollingController.
我没有消息队列的经验,但我的直觉告诉我他们在这种情况下是必需的.
您如何建议以非阻塞,高效的方式实现此功能?

举例将受到高度赞赏