当前位置: 首页 > 知识库问答 >
问题:

测试岗位有哪些方法可以防止状态=405?

龙逸清
2023-03-14

我试图使用Jersey构建一个RESTful web服务。

在我的服务器端代码中,有一个名为“domain”的路径,我用来显示内容。只有输入正确的用户名和密码,才能访问“域”所指页面的内容。

@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("domain")
public ArrayList<String> domainList(@Context HttpServletRequest req) throws Exception{
    Environments environments = new DefaultConfigurationBuilder().build();
    final ALMProfile profile = new ALMProfile();
    profile.setUrl(environments.getAutomation().getAlmProfile().getUrl());
    profile.setUsername((String) req.getSession().getAttribute("username")); 
        //Set username from input, HTML form
    profile.setPassword((String) req.getSession().getAttribute("password"));
        //Set password from input, HTML form
    try (ALMConnection connection = new ALMConnection(profile);) {
        if (connection.getOtaConnector().connected()) {
            Multimap<String, String> domain = connection.getDomains();
            ArrayList<String> domain_names = new ArrayList<String>();
            for(String key : domain.keys()){
                if(domain_names.contains(key)) domain_names.add(key);
            }
            return domain_names; //return the content
        }
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
    return null;
}

当我尝试测试是否返回了正确的内容时,我得到了一个错误(状态=405,原因=方法不允许)。下面是我的客户端测试。

public static void main(String[] args){
    Environments environments = new DefaultConfigurationBuilder().build();
    final ALMProfile profile = new ALMProfile();
    profile.setUrl(environments.getAutomation().getAlmProfile().getUrl());
    profile.setUsername("username"); //Creating a profile with username and password
    profile.setPassword("password");
    ClientConfig config = new ClientConfig();
    Client client = ClientBuilder.newClient(config);
    WebTarget target = client.target(getBaseURI());
    String response = target.path("domain").request().accept
        (MediaType.APPLICATION_JSON).get(Response.class).toString(); 
        //Above is the GET method I see from an example, 
        //probably is the reason why 405 error comes from.
    System.out.println(response);

}

private static URI getBaseURI() {
    return UriBuilder.fromUri("http://localhost:8080/qa-automation-console").build();
}

servlet配置很好。我们成功地运行了其他路径。我怀疑原因可能是因为我使用了GET方法来完成本应发布的工作。但我不熟悉我可以使用的泽西方法。

有人知道我可以用来测试功能的任何方法吗?

共有1个答案

邓鸿彩
2023-03-14

参见405状态代码

405方法不允许

请求行中指定的方法不允许用于请求URI标识的资源。响应必须包含一个允许标头,其中包含请求资源的有效方法列表。

您的endpoint用于POST请求。在您的客户机中,您正在尝试获取()。

有关如何发出POST请求的信息,请参阅客户端API留档。如果应该是GET请求,则只需将方法注释更改为@GET

另请注意,对于您的@POST资源方法,您应该始终使用方法支持的媒体类型放置@消耗注释。如果客户端发送不支持的媒体类型,那么他们将按预期获得不支持的415。我会发布一个客户端帖子的示例,但我不知道您期望的是什么类型,因为缺少注释,而且您甚至没有一个post对象作为方法参数,所以我甚至不确定您的方法是否真的应该用于POST。

另请参见:

  • 如何使用javax从REST客户端发送json对象。ws。rs.client。WebTarget网站
 类似资料:
  • 本文向大家介绍防止过拟合有哪些方法相关面试题,主要包含被问及防止过拟合有哪些方法时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)Dropout ;2)加L1/L2正则化;3)BatchNormalization ;4)网络bagging

  • 我试图在我的应用程序中使用视图寻呼机实现照片查看器。我能够让系统用户界面消失(导航和状态栏)在一个单一的触摸。我遇到的唯一问题是,每次我使状态栏消失并重新出现时,我在视图寻呼机上的布局开始抖动或跳跃。 我的实现的可视化 我想要实现的是什么 我已经试着按照这个stack over flow post中的建议设置系统ui标志。但它仍然给了我“神经质”的布局反应。 下面的代码是我用来隐藏/显示状态栏的:

  • 本文向大家介绍黑盒测试方法有哪些?(写出15种以上)相关面试题,主要包含被问及黑盒测试方法有哪些?(写出15种以上)时的应答技巧和注意事项,需要的朋友参考一下 动态测试 故障转移和恢复测试 配置测试 容量测试 UI测试 数据和数据库完整性测试 易用性测试 功能测试 性能测试 自动化测试 健壮性测试 稳定性测试 场景测试 逻辑测试 随机测试 集成测试 系统测试 验收测试 冒烟测试 兼容性测试 逆向思

  • 本文向大家介绍http都有哪些状态码?相关面试题,主要包含被问及http都有哪些状态码?时的应答技巧和注意事项,需要的朋友参考一下 1**:请求收到,继续处理 2**:操作成功收到,分析、接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5**:服务器执行一个完全有效请求失败 再具体就如下: 100——客户必须继续发出请求 101——客户要求服务器根据请求转换HTTP

  • 本文向大家介绍hibernate 对象有哪些状态?相关面试题,主要包含被问及hibernate 对象有哪些状态?时的应答技巧和注意事项,需要的朋友参考一下 临时/瞬时状态:直接 new 出来的对象,该对象还没被持久化(没保存在数据库中),不受 Session 管理。 持久化状态:当调用 Session 的 save/saveOrupdate/get/load/list 等方法的时候,对象就是持久化

  • 本文向大家介绍请问黑盒测试和白盒测试有哪些方法相关面试题,主要包含被问及请问黑盒测试和白盒测试有哪些方法时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 黑盒测试方法有等价类划分,边界值分析,错误推测,因果图法 白盒测试方法有逻辑覆盖法,程序插桩技术,基本路径法,符号测试,错误驱动测试