首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Crossbar的Web重定向服务?

如何使用Crossbar的Web重定向服务?
EN

Stack Overflow用户
提问于 2017-06-30 19:36:12
回答 1查看 82关注 0票数 0

我正在尝试使用Crossbar的重定向服务重定向http请求(GET)。我对请求使用了'curl‘。重定向似乎工作得很好,但我不能将我的(查询)参数传递到最终目的地。具体地说,我正在做:

代码语言:javascript
复制
curl -L "http://localhost:8008/redirection?num=15"

其中,在localhost:8008运行的是纵横制路由器。路径'/redirection‘在Crossbar的配置文件中定义:

代码语言:javascript
复制
"redirection":{
    "type": "redirect",
    "url": "http://somewhere.com/something" 
},

来自服务器的响应(例如http://somewhere.com/something)是:

代码语言:javascript
复制
{
 "detail": "Missing query parameter 'num'",
 "status": 400,
 "title": "Bad Request",
 "type": "about:blank"
}

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-07-01 22:18:38

我找到了一个解决方案。我不确定这是不是正确的方法,但它是有效的。我在路径为: /usr/local/lib/python3.4/dist-packages/twisted/web.的http.py文件中添加了一些代码行具体来说,我更改了类请求的函数重定向,如下所示:

代码语言:javascript
复制
    def redirect(self, url):
    """
    Utility function that does a redirect.

    The request should have finish() called after this.
    """
    ##########    my code   ##########
    x = self.uri.split(b'?', 1)    #split
    if len(x) == 1:           
        self.path = self.uri          #there are no parameters
    else:
        self.path, argstring = x      #argstring = my query parameters 
        params = '?' + argstring.decode()
        url += params.encode()        #convert string parameters to bytes and append them to url 
    ################################

    self.setResponseCode(FOUND)
    self.setHeader(b"location", url)

现在,"location“有了新的url +我的查询参数,并且重定向服务(Crossbar)正在将我的参数正确地传递到新的目的地。

如果有更好的解决方案(也许我可以在crossbar中改变一些东西,而不是扭曲的),让我知道!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44845546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档