Bob*_*tal 2 c# asp.net-web-api
我将首先开始说,在学习C#时请耐心等待,我会尽力做到具体。
我们在家里使用第三方即时通讯工具。他们增加了在信使中执行斜线命令以获取某些信息的功能。他们唯一的开箱即用选项是“ / weather”,为您提供该邮政编码的当前天气。
我想在内部使用它来向我的用户提供包含在我们的SQL Server中的信息。我的概念证明项目是使用/ discounts拉动积极折扣,您可以从输出中键入/ disocunts以列出该折扣中可用的商品。
我在Visual Studio中创建了Web API,并且在大多数情况下可以按照自己的意愿进行工作。我需要添加一些错误报告,但除此之外,它的效果还不错。我最大的问题是用户看到的输出。
目前,使用我的webAPI时,我正在将该格式重新输入到Messenger中:
[“ 8-VAPE液体-2折为$ 2.00”,“ 11-草莓味1”,“ 15-高级雪茄折扣-捆绑包,” 16-高级雪茄折扣“]
我希望他们至少在每个“,”处换行,理想情况下,输出为:
“ 8-VAPE液体-2售价$ 2.00”
“ 11-WILDBERRY INCENSE 1”
“ 15-高级雪茄折扣-捆绑包”
“ 16-高级雪茄折扣”
这是我的API Contoller中的代码。
public class DiscountsController : ApiController
{
private DiscountsEntities db = new DiscountsEntities();
[HttpPost]
public HttpResponseMessage Authenticate(FormDataCollection form)
{
var message = form.Get("Message");
if (message == "/discounts" )
{
var ReturnedDiscounts = from d in db.Discounts
where d.DiscountStartDate < DateTime.Now && d.DiscountStopDate >= DateTime.Now
orderby d.DiscountPriority ascending
select string.Concat(d.DiscountPriority, " - ", d.DiscountName);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK,ReturnedDiscounts);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
return response;
Run Code Online (Sandbox Code Playgroud)
任何帮助或协助将不胜感激。
您不必在消息中返回对象。您可以只返回一个字符串。
var strResponse = string.Join("\n", ReturnedDiscounts);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, strResponse);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
return response;
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您使用的是WebAPI 2,则可以执行此操作以确保它也没有引号-这可能是更可取的
var strResponse = string.Join("\n", ReturnedDiscounts);
return Content(strResponse);
Run Code Online (Sandbox Code Playgroud)
如果那不起作用,您也可以...
return new HttpResponseMessage()
{
Content = new StringContent(strResponse, Encoding.UTF8, "text/html")
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2563 次 |
| 最近记录: |