3

我用一种 HTTP GET 方法创建了非常简单的端点。我将一个字符串作为 ApiMethod 命名参数传递:

@Api (name = "sample_endpoint")
public class SampleEndpoint
{
    public Entity get(@Named("parameter") String parameter)
    {
        return new Entity(parameter);
    }

    public class Entity
    {
        public String parameter = "Validated ok.";
        public Entity(String parameter) { this.parameter = parameter; }
        public String getParameter() { return parameter; }
    }
}

当我使用包含字母和数字以及一些特殊字符(如 )的参数调用 URL 时-.,它可以工作:

GET http://localhost:8888/_ah/api/sample_endpoint/v1/entity/passedparam

200 OK
{
 "parameter": "passedparam"
}

但是当我在参数中插入某些特殊字符时,例如:#/,我得到 HTTP 404。参数是 URL 编码的,例如我使用 valuepassed:param

GET http://localhost:8888/_ah/api/sample_endpoint/v1/entity/passed%3Aparam

404 Not Found
<html><head><title>Error 404</title></head>
<body><h2>Error 404</h2></body>
</html>

是错误还是功能?或者也许我做错了?

4

2 回答 2

1

从 App Engine SDK 1.8.6 开始,此问题已得到解决

于 2013-10-28T05:47:06.343 回答
0

这个问题报告现在正在讨论这个问题。由于 dev 和 prod 的行为不同,这里肯定有一个错误。我怀疑你正在尝试做的事情应该在 dev 和 prod 中都有效,并且本地服务器中存在错误。

于 2013-08-31T00:37:42.600 回答