我刚刚开始在Umbraco(v 7.3.4)项目中开发,我似乎无法设置自定义路由。我一直在阅读许多文章和其他StackOverflow答案,但我似乎无法在任何地方找到一个清晰而完整的解决方案。
我添加了一个名为ReportingApi的新控制器,继承自UmbracoApiController。问题是它的路线是:
http://myhostname.com/umbraco/api/reportingapi/{action}/{id}
但是,我想有以下路线:
http://myhostname.com/api/reporting/{action}/{token}/{id}
我怎样才能做到这一点?
答案 0 :(得分:1)
使用属性路由。用 -
装饰你的动作方法[Route("api/reporting/{action}/{token}/{id}")]
此外,请检查WebApiConfig
文件并确保
config.MapHttpAttributeRoutes();
代码存在。
答案 1 :(得分:1)
您可以通过扩展from scrapy.item import Item, Field
from scrapy.http import FormRequest
from scrapy.spider import Spider
from scrapy.utils.response import open_in_browser
class TestSpider(Spider):
name = "test"
allowed_domains = ["example.com"]
start_urls = ["https://example.com/customer/account/login/"]
def parse(self, response):
token = response.xpath(".//input[contains(@name,'token')]/@value").extract()[0]
yield FormRequest.from_response(
response,
formnumber=1,
formxpath=".//*[@id='form-account-login']",
formdata={
'token' : token,
'LoginForm[email]': 'xxxx',
'LoginForm[password]': 'xxxx',
},
clickdata={'id': 'customer-account-login'},
callback=self.parse1,
)
def parse1(self, response):
return scrapy.Request(url="https://example.com/customer/account/list/", callback = self.parse_2, errback=self.error)
def parse1(self,response):
open_in_browser(response)
并在其中添加自定义路线来实现:
ApplicationEventHandler