Google应用引擎更新用户信息获取错误400 BAD_REQUEST

时间:2016-02-24 19:21:10

标签: java google-app-engine google-admin-sdk google-directory-api

使用Admin SDK的目录API更新用户信息时收到错误:

  

400 BAD_REQUEST

{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Invalid Input: Bad request for ",
    "reason" : "invalid"
  } ],
  "message" : "Invalid Input: Bad request for "
}

尝试为用户更新组织详细信息,例如姓名,职位和部门

我的示例代码:`

Get users = directoryService.users().get(userEmail);
User user = users.execute();
try{
    List<UserOrganization> userOrg = new ArrayList<UserOrganization>();
    userOrg = user.getOrganizations();
    if(userOrg != null){
        UserOrganization f_userOrg = new UserOrganization();
        f_userOrg = userOrg.get(0);
     if(f_userOrg != null){
            f_userOrg.setTitle("SAP Asso");
            f_userOrg.setName("xyz company name");
            f_userOrg.setDepartment("xyz dept name");
            f_userOrg.setType("work");
            userOrg.add(f_userOrg);
            user.setOrganizations(userOrg);
        }
    }
    InputStream body =  directoryService.users().update(userEmail,user).executeAsInputStream();
// @ this line it throws exception 400 BAD_REQUEST 
}catch(Exception e){
        e.printStackTrace();
    }

我引用此update_user链接来更新用户数据。

任何帮助将不胜感激。 感谢。

2 个答案:

答案 0 :(得分:2)

是否可以打印您要发送给Google API的请求。您发送的格式可能存在问题。

答案 1 :(得分:2)

  

400 BAD_REQUEST是服务器无法理解的请求   由于语法错误。客户端不应该重复请求   没有修改。

所以基本上API调用时参数不匹配。在这种情况下,您的请求会转到服务器,但由于请求参数错误,它会产生400错误。