代码之家  ›  专栏  ›  技术社区  ›  Slimy43

Groovy URLConnection获取4xx响应的响应

  •  0
  • Slimy43  · 技术社区  · 6 年前

    我有一个Groovy脚本,它使用URLConnection来处理GET请求(在本例中是获取身份验证令牌);

    URLConnection loginURI = new URL("www.myaddress.fish").openConnection();
    loginURI.setRequestProperty("Authorization","me:you");
    response = loginURI.getInputStream();
    

    不复杂,当响应为200或类似值时,此代码工作正常。回复中包含了我需要改进的细节。

    但是,有时响应是4xx响应(最常见的是来自无效授权头的400个错误请求),通过SOAPUI或类似的方式运行相同的请求,我可以看到响应体包含有用的信息(例如“your username is incorrect”)。我希望能够捕获有用的信息进行处理,但我不知道如何做到这一点。

    我尝试了传统的“try/catch”思想,但得到的是Java异常,而不是响应体。我愚蠢地试了一个沼泽标准

    println response.text
    

    但那根本不管用。假设响应体存储在某个地方,我如何读取它?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Slimy43    6 年前

    在我的情况下,我已经改变了代码;

    responseCode=loginURI.getResponseCode();
    if(responseCode != 200){
        response = loginURI.getErrorStream();
    }else{
        response = loginURI.getInputStream();
    }
    println "login response:" + response.text;