【问题标题】:API parameter google App Engine(java)API 参数 google App Engine(java)
【发布时间】:2014-08-08 14:30:22
【问题描述】:

我正在开发谷歌端点 API,但我从以下代码中得到了意外的输出。 当我插入电子邮件 myemail@hostname.com 然后端点 API 将此电子邮件转换为 myemail%40hostname.com 那么您能告诉我如何解决这个问题吗? p>

@ApiMethod(name="login")
    public User userLogin(@Named("email")final String email,@Named("password")final String pwd)
    {   
        return userLoginResponse(email, pwd);   
    }

【问题讨论】:

  • 它是作为 myemail%40hostname.com 发送到函数的吗?
  • 是的,它向函数发送了 myemail%40hostname.com

标签: java api google-app-engine google-cloud-endpoints


【解决方案1】:

“@”等特殊字符使用 UTF-8 编码。 使用 URLDecoder 类来解码电子邮件 ID。

import java.net.URLDecoder;

...

@ApiMethod(name="login")
    public User userLogin(@Named("email")final String email,@Named("password")final String pwd)
    {   

        try {
            decodedEmail = URLDecoder.decode(email,"UTF-8");
        } 

        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        return userLoginResponse(decodedEmail, pwd);   
    }

【讨论】:

  • 还有其他方法可以将参数传递给 API 方法吗?(因为如果我有多个包含特殊字符的 API 方法参数,那么我必须对每个参数进行解码)
  • 我认为您不需要解码生产代码中的参数,这似乎只发生在本地开发服务器中
猜你喜欢
  • 2012-06-08
  • 1970-01-01
  • 2012-01-06
  • 2017-10-12
  • 2012-08-24
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2013-07-06
相关资源
最近更新 更多