标签: nancy

使用Nancy返回包含有效Json的字符串

我收到一个包含来自其他服务的有效JSON的字符串.我想用Nancy转发这个字符串,但也将内容类型设置为"application/json",这将允许我删除在客户端使用$ .parseJSON(数据)的需要.

如果我使用Response.AsJson,它似乎会破坏字符串中的JSON并添加转义字符.我可以用字符串创建一个Stream并设置响应类型如下:

Response test = new Response();
test.ContentType = "application/json";
test.Contents = new MemoryStream(Encoding.UTF8.GetBytes(myJsonString)); 
Run Code Online (Sandbox Code Playgroud)

但是想知道是否有更简单的方法?

c# json nancy

47
推荐指数
4
解决办法
3万
查看次数

在NancyFx中获取url参数

我正在使用NancyFx构建一个Web API,但是从URL获取参数时我遇到了一些问题.

我需要向API发送请求.../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000并捕获参数的值:granularity,from,tags和to.我尝试了几个approches,没有一个工作.我试过,例如,

Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

路易斯桑托斯

nancy

37
推荐指数
2
解决办法
3万
查看次数

使用NancyFx的好处?

还有另一个用于进行名为NancyFx的HTTP调用的框架.我的问题是使用它有什么好处.我快速查看了文档:

https://github.com/NancyFx/Nancy/wiki/Documentation

看起来没有突出的功能,因此我想使用它.通过WebHttp使用它有什么好处?

PS:我一直在读一些不断重复的"超级快乐路径"的奇怪短语.除了这种"超级快乐的道路"之外还有什么东西吗?实现了哪些真正的功能

c# asp.net rest webhttp nancy

34
推荐指数
2
解决办法
3万
查看次数

如何在南希提供静态内容

我在Nancy中提供JavaScript等静态内容时遇到了麻烦.

例如,使用自托管示例我已将一个test.js添加到Views文件夹并添加了一个

<script type="text/javascript" src="test.js"></script>
Run Code Online (Sandbox Code Playgroud)

标记到staticview.html页面.如果我在浏览器中查看此页面,则JavaScript正确执行.

但是,当我运行示例时,JavaScript不会被执行.如果我在FireBug中查看该页面,我发现我收到了test.js的404错误.

我试过添加

Get["{file}"] = p =>
{
    string path = string.Format("Views/{0}", p.file);
    return Response.AsJs(path);
};
Run Code Online (Sandbox Code Playgroud)

当我设置一个断点并在即时窗口中执行Response.AsJs(path)时,我得到一个NotFound的StatusCode

我也尝试过添加一个StaticContentConvention,比如

protected override void ConfigureConventions(NancyConventions conventions)
{
    base.ConfigureConventions(conventions);
    conventions.StaticContentsConventions.Add(
        StaticContentConventionBuilder.AddDirectory("/", "Views"));
    conventions.StaticContentsConventions.Add(
        StaticContentConventionBuilder.AddDirectory("Views", "Views"));
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

nancy

28
推荐指数
2
解决办法
2万
查看次数

在Nancy中回复身体和状态代码

我是Nancy的新手,我想要返回一个自定义的HttpStatusCode和一个body(内容).如果我返回一个HttpStatusCode,它将返回一个空白的主体.如果我返回一个字符串,那么它将返回该字符串,但总是使用200状态代码OK.

public class SendSMS : NancyModule
{
    public SendSMS()
    {
        Post["/SendSMS"] = parameters =>
            {
                return HttpStatusCode.BadRequest; // this works, no body
                return "Missing \"to\" parameter"; // this works, 200 status code
                // want to return status code with message
            };
    }
}
Run Code Online (Sandbox Code Playgroud)

nancy

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

是否可以使用NancyFX启用CORS?

我有一个使用NancyFX创建的API服务,以及一些前端开发人员针对此API创建SPA JS客户端.

我们希望针对已发布的服务器测试客户端代码,而无需以过多的频率发布客户端代码.

但是,客户端在localhost运行,服务器在Windows Azure.

在NancyFX服务器上启用CORS是否可行且容易?我怎样才能做到这一点?

谢谢.

azure cors nancy

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

无法将HttpHandler映射到"path/*"通配符映射

所以我一直在尝试将http模块映射到MVC3站点的子路径.它应该很简单,因为我理解它,但它没有工作.模块设置如下:

<handlers>
  <add name="Nancy" path="api/*" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" allowPathInfo="true" />
</handlers>
Run Code Online (Sandbox Code Playgroud)

iis6也有匹配部分,所以我可以在webdev.webserver下运行它.然而,测试部署到我的本地iis7(在Win7下)和webdev.webserver,只有/ api实际上调用处理程序.如果我调用/ api/{anything}它只返回404.

我确定我只是"做错了(tm)",但任何帮助都会受到赞赏.

注意:我还尝试了其他一些配置,包括使用标记和创建/ api文件夹,并使用完整的通配符将web.config添加到该文件夹​​.

asp.net iis-7 httphandler webdev.webserver nancy

25
推荐指数
3
解决办法
3万
查看次数

自托管OWIN和urlacl

我已经创建了一个自托管的Nancy/SignalR应用程序,它使用Microsoft.Owin.Host.HttpListener和在OWIN中自托管Microsoft.Owin.Hosting

事情在本地工作得很好但是一旦我尝试使用除localhost之外的任何东西来访问应用程序我就会收到HTTP Error 503. The service is unavailable错误.我甚至无法使用127.0.0.1或使用机器名称访问应用程序.

我已经尝试将端口添加到urlacl使用

http add urlacl http://*:8989/ user=EVERYONE 但似乎没有做任何事情.

这是我试过的OWIN启动选项,

        var options = new StartOptions
        {
            Url = "127.0.0.1",
            App = GetType().AssemblyQualifiedName,
            Port = _configFileProvider.Port
        };

    var options = new StartOptions
        {
            App = GetType().AssemblyQualifiedName,
            Port = _configFileProvider.Port
        };
Run Code Online (Sandbox Code Playgroud)

这是启动和停止服务器的文件的源代码 https://github.com/NzbDrone/NzbDrone/blob/vnext/NzbDrone/Owin/OwinHostController.cs

acl self-hosting nancy signalr owin

23
推荐指数
3
解决办法
2万
查看次数

南希自我主持人不打电话给模块?

我正在努力将Nancy Framework添加到我的C#控制台应用程序中(遵循这里非常简短的教程,当我转到http:// localhost:1234时它会加载一个空白页面,所以我知道它正在启动,但它没有显示我的文本正确.我已经多次查看我的代码,但没有看到任何问题.

我已将Nancy和Nancy.Hosting.Self添加到我的项目中.

        static void Main(string[] args)
        {
            var nancyHost = new Nancy.Hosting.Self.NancyHost(new Uri("http://localhost:1234"));
            nancyHost.Start();
            Console.ReadLine();
            nancyHost.Stop();
        }

namespace DaemonApp
{
    class MainModule : Nancy.NancyModule
    {
        public MainModule()
        {
            Get["/"] = parameters =>
            {
                return "Hello world!";
            };
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我添加了一些打印行,当我访问页面时它从不调用模块.有没有人知道问题是什么?

c# module nancy

22
推荐指数
1
解决办法
3592
查看次数

南希(C#):如何获取我的帖子数据?

我正在使用Corona SDK将数据发布到我的C#服务器:

headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["Accept-Language"] = "en-US"

local body = "color=red&size=small"

local params = {}
params.headers = headers
params.body = body

network.request( host .. "/UpdateHand", "POST", nwListener, params )
Run Code Online (Sandbox Code Playgroud)

我在服务器上收到一条消息:

  Post["/UpdateHand"] = x =>
        {
            Console.WriteLine("Received ...");
            return "Ok";
        };
Run Code Online (Sandbox Code Playgroud)

但是当我检查数据时(当我在其上放置一个断点)时,我看不到我的数据所在的位置(即params.body或params.headers).我该如何提取这些信息?

我应该根据Corona上的文档正确发布它:http://docs.coronalabs.com/daily/api/library/network/request.html

c# lua coronasdk nancy

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

nancy ×10

c# ×4

asp.net ×2

acl ×1

azure ×1

coronasdk ×1

cors ×1

httphandler ×1

iis-7 ×1

json ×1

lua ×1

module ×1

owin ×1

rest ×1

self-hosting ×1

signalr ×1

webdev.webserver ×1

webhttp ×1