RestSharp重定向和身份验证401

时间:2012-06-18 20:21:08

标签: asp.net-mvc heroku neo4j basic-authentication restsharp

我正在尝试向通过heroku托管的Neo4j实例发出REST请求。服务器使用基本身份验证进行设置。

这是我从Heroku提供的网址(注意尾随斜线):http://username:password@instance.hosted.neo4j.org:123/db/data /

我正在使用RestSharp连接到此实例。但是,RestSharp将删除尾部斜杠。 Code。生成的网址变为:http://username:password@instance.hosted.neo4j.org:123/db/data

这会产生HTTP 301到(注意尾随斜杠):http://username:password@instance.hosted.neo4j.org:123/db/data/

问题是授权标头不会在重定向MSDN之间保留。此重定向会生成HTTP 401

这有什么明显的方法吗?我尝试了以下内容:

  • 提供2个尾部斜杠/db/data//,因此RestSharp只删除了一个斜杠,但剩下一个斜杠。这不起作用,因为其他请求的格式无效:/db/data//query/stuff
  • 使用CredentialCache课程。这有效但每次操作会产生2个请求(一个用于401挑战,另一个用于响应)
  • IAuthenticationModlue - 在MSDN中找到有关此内容的最小信息,但在尝试自定义类后,仍会出现前面提到的双跃点问题。
  • 将初始休息请求更改为new RestRequest("/", Method.GET);而不是new RestRequest("", Method.GET); - 唯一的问题是我不想修改我的应用和RestSharp之间的开源项目我的具体需求。 RestSharp删除所有结束斜杠

1 个答案:

答案 0 :(得分:0)

来自Google集团的皮特:

  

请求“根资源”的一个有点烦人的解决方法是   使用:new RestRequest(“/”),尾部空格将阻止   RestSharp修剪斜线,但会被(大多数)忽略   服务器。

https://groups.google.com/forum/?fromgroups#!topic/restsharp/8mBmaXksmsg

相关问题