我有一个WebApi控制器,其方法如下:
[HttpGet]
[AcceptVerbs("GET")]
public HttpResponseMessage Run(string reportName, int someId, string someText, DateTime asOfDate, string username)
Run Code Online (Sandbox Code Playgroud)
我有专门为此操作配置的自定义路由.当我将浏览器导航到Web服务时,一切正常,并执行相应的操作:
http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/user@domain.com
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用HttpClient以编程方式调用Web服务并执行"获取"时,我收到404错误.当username参数不是电子邮件地址时,我不会收到错误.例如,当用户名只是"用户"时,一切正常.以下是示例代码:
var url = "http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/user@domain.com"
var client = new System.Net.Http.HttpClient();
var response = client.Get(url);
//fails here with 404 error
response.EnsureSuccessStatusCode();
Run Code Online (Sandbox Code Playgroud)
我试过UrlEncoding电子邮件地址没有运气.任何建议表示赞赏.
我的申请要求如下.我需要存储看起来像这样的订单:
每个订单都与特定的股票代码(字符串)相关,并且具有价格,交易量以及是否与其相关的买入或卖出(布尔值).
我需要对与特定股票相关的所有订单执行多项操作,例如获取股票代码"abc"的订单量的总和.
我需要能够向数据结构添加订单
我需要能够从数据结构中删除订单
我需要能够在添加或删除订单后找出哪个订单提供最优惠的价格.
这是我到目前为止的想法:
public class Order : IComparable
{
private string _StockCode;
private bool _BidSide;
private int _Volume;
private decimal _Price;
private int _ExchangeOrderId;
public int CompareTo(Order other)
{
if (_BidSide != other.BidSide)
{
return _BidSide ? 1 : -1;
}
return decimal.Compare(_Price, other.Price);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将订单存储在Dictionary <string,List <Order >>中.每个股票代码都是字典中的一个键,指向该股票的订单列表.我还会将字典匹配订单ID与股票代码相匹配.
为了添加新订单,我只需根据当前股票代码在字典中找到合适的订单列表,然后插入订单.我还会在orderstock字典中添加一个与当前订单匹配的条目和approrpriate列表.
为了找到最优惠的价格,我在字典中查找当前股票代码的订单列表,对列表进行排序并打印出最高订单.
删除是棘手的.我首先需要通过股票代码查找相应的清单.然后,我需要遍历该股票代码的所有订单,找到与当前订单ID匹配的订单并将其删除.如果当前股票代码有很多订单,这显然效率低下.这是存储此信息的最佳方式吗?
我试图写的实际查询比标题所暗示的要复杂一些.我有一个这样的订单列表:List<Order>,订单如下:
public class Order
{
private StockCodes _stockCode;
private bool _bidSide;
private int _volume;
private decimal _price;
}
Run Code Online (Sandbox Code Playgroud)
我需要在给定特定股票代码的情况下公布最佳买入价和交易量以及最佳卖出价和交易量.最佳报价定义为bidSide为true的最高价格.最佳卖价定义为bidSide为false的最低价格.
例如,给出股票代码"ABC"的以下数据:
{ bidSide: true, volume: 25, price: 25 }
{ bidSide: true, volume: 25, price: 25 }
{ bidSide: true, volume: 25, price: 5 }
{ bidSide: false, volume: 100, price: 1 }
{ bidSide: false, volume: 50, price: 2}
{ bidSide: false, volume: 75, price: 8 }
Run Code Online (Sandbox Code Playgroud)
最佳出价:价格25,成交量50(因为最高价格有2个订单)最畅销:价格1,成交量100(因为最低价格只有1个订单)
最后,我需要考虑什么时候没有买入或卖出订单.效率是高优先级,所以如果我能够在一个首选的linq语句中这样做.
我正在尝试将MP4视频文件转换为f4v视频文件,以便我可以使用Flash Media Server流式传输视频.理想情况下,我想将mp4转换为各种比特率,以便我可以完成视频的多比特流.我很确定ffmpeg能够做到这一点,但我不断得到不同的错误消息.这是我尝试过的最新内容:
ffmpeg.exe -i source.mp4 -ar 150 destination.f4v
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:"无法找到'destination.mp4'destination.mp4的合适输出格式:无效的参数
提前致谢!