可以从Postman调用Rest API,显示来自Java的400错误请求

加吉里斯

我正在尝试使用POST RESTful服务。当我在邮递员上尝试时,我得到了成功的答复。但是,当我用以下代码在Java上尝试时,我的响应代码是400。在邮递员中,我粘贴了相同的输入内容,但替换了转义字符。

try {

    URL url = new URL("https://localhost/PasswordVault/api/Accounts");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);

    conn.setRequestProperty("Content-Type", "application/json");
    String input = "{\"qty\":100,\"name\":\"iPad 4\", \"detail\":{\"ver\":\"2020\",\"productionDate\":\"2020\"}}";

    OutputStream os = conn.getOutputStream();
    os.write(input.getBytes());
    os.flush();


    if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
        throw new RuntimeException("Failed : HTTP error code : "
                + conn.getResponseCode());
    }

    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

    String output;
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
        System.out.println(output);
    }

    conn.disconnect();
} catch (Exception e) {
        System.out.println("Exception:- " + e);
}
雷托·霍亨纳(RetoHöhener)

一些想法:

  • 将您的请求发布数据编码为UTF-8: "post data".getBytes(StandardCharsets.UTF_8)
  • 阅读服务器的响应(而不仅仅是代码),以期获得有关该问题的更多详细信息(connection.getErrorStream()
  • 是否缺少授权头?(API令牌等)
  • 使用单引号使您的请求数据字符串更具可读性,或使用JSON库避免人为错误
  • 在flush()之后也调用OutputStream.close()

例如

  // handle error code
  if(connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
    // use getErrorStream for non OK statuses (https://stackoverflow.com/questions/613307/read-error-response-body-in-java)
    String errorMessage = "HTTP response code: " + responseCode
        + (responseMessage == null || responseMessage.trim().length() == 0 ? "" : " " + responseMessage);

    InputStream errorStream = connection.getErrorStream();
    if(errorStream != null) {
      String errorString = streamToString(connection.getErrorStream());
      if(errorString.length() > MAX_MSG_LENGTH) {
        errorString = errorString.substring(0, Math.min(MAX_MSG_LENGTH, errorString.length())) + "...";
      }
      errorMessage += ", HTTP response data: " + errorString;
    }

    throw new RuntimeException(errorMessage);
  }

  // handle OK code
  // ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

400 错误请求无效动词 SharePoint Rest Api Java

来自分类Dev

从 Java 应用程序到 TFS REST API 的 HTTP PATCH 请求获得 400(错误请求)错误

来自分类Dev

Parse.com REST API错误代码400:从Java HTTP请求到云功能的错误请求

来自分类Dev

如何通过 postman 调用 REST API 在 Azure 中创建索引?

来自分类Dev

Django:通过视图而不是 Postman 调用 REST API

来自分类Dev

解析推送REST API错误400“错误请求”

来自分类Dev

CloudFront是否可以缓存REST API调用

来自分类Dev

OAuth,PHP,Rest API和curl发出400错误请求

来自分类Dev

HTTP / 1.1 400错误请求Sabre REST Api

来自分类Dev

Axios对Firebase Auth REST API的发布请求产生400错误

来自分类Dev

REST'put','post' 400 个错误的请求。Javascript、HTML、Java

来自分类Dev

来自浏览器的WCF方法调用返回400错误请求

来自分类Dev

如何获取有效的访问令牌以从Postman调用Azure REST API

来自分类Dev

我的大多数API在前端调用时都返回400错误的请求错误

来自分类Dev

Docusign上传api调用返回远程服务器返回错误:(400)错误的请求

来自分类Dev

无法使用Jive REST API发布共享-收到400错误的请求错误

来自分类Dev

使用REST API更新Sharepoint元数据会产生400错误的请求错误

来自分类Dev

ALM Rest API:站点会话返回“远程服务器返回错误:(400) 错误请求。”

来自分类Dev

我可以通过ruby REST API调用创建方法吗?

来自分类Dev

Maven + Jersey RESTful API:GET请求中来自POSTMAN的内部服务器错误

来自分类Dev

Spring Ajax调用上的400错误请求

来自分类Dev

Django Rest Framework JWT 400错误请求

来自分类Dev

G Suite用户:列表api调用失败,响应400:请求错误

来自分类Dev

调用 https 请求以在 Stripe API 上收费时出现错误 400

来自分类Dev

使用REST API创建Sonatype Nexus存储库会导致HTTP / 1.1 400错误请求

来自分类Dev

使用Microsoft Speech到文本REST API时,收到400- OGG文件格式的错误请求

来自分类Dev

使用CURL创建和发送邮件的Office 365 REST API获取HTTPCode 400错误请求

来自分类Dev

使用CURL创建联系人的Office 365 REST API获取HTTPCode 400错误请求

来自分类Dev

Azure COSMOSDB 指标 - HttpClientErrorException$BadRequest:400 错误请求 - 无法使用 REST API

Related 相关文章

  1. 1

    400 错误请求无效动词 SharePoint Rest Api Java

  2. 2

    从 Java 应用程序到 TFS REST API 的 HTTP PATCH 请求获得 400(错误请求)错误

  3. 3

    Parse.com REST API错误代码400:从Java HTTP请求到云功能的错误请求

  4. 4

    如何通过 postman 调用 REST API 在 Azure 中创建索引?

  5. 5

    Django:通过视图而不是 Postman 调用 REST API

  6. 6

    解析推送REST API错误400“错误请求”

  7. 7

    CloudFront是否可以缓存REST API调用

  8. 8

    OAuth,PHP,Rest API和curl发出400错误请求

  9. 9

    HTTP / 1.1 400错误请求Sabre REST Api

  10. 10

    Axios对Firebase Auth REST API的发布请求产生400错误

  11. 11

    REST'put','post' 400 个错误的请求。Javascript、HTML、Java

  12. 12

    来自浏览器的WCF方法调用返回400错误请求

  13. 13

    如何获取有效的访问令牌以从Postman调用Azure REST API

  14. 14

    我的大多数API在前端调用时都返回400错误的请求错误

  15. 15

    Docusign上传api调用返回远程服务器返回错误:(400)错误的请求

  16. 16

    无法使用Jive REST API发布共享-收到400错误的请求错误

  17. 17

    使用REST API更新Sharepoint元数据会产生400错误的请求错误

  18. 18

    ALM Rest API:站点会话返回“远程服务器返回错误:(400) 错误请求。”

  19. 19

    我可以通过ruby REST API调用创建方法吗?

  20. 20

    Maven + Jersey RESTful API:GET请求中来自POSTMAN的内部服务器错误

  21. 21

    Spring Ajax调用上的400错误请求

  22. 22

    Django Rest Framework JWT 400错误请求

  23. 23

    G Suite用户:列表api调用失败,响应400:请求错误

  24. 24

    调用 https 请求以在 Stripe API 上收费时出现错误 400

  25. 25

    使用REST API创建Sonatype Nexus存储库会导致HTTP / 1.1 400错误请求

  26. 26

    使用Microsoft Speech到文本REST API时,收到400- OGG文件格式的错误请求

  27. 27

    使用CURL创建和发送邮件的Office 365 REST API获取HTTPCode 400错误请求

  28. 28

    使用CURL创建联系人的Office 365 REST API获取HTTPCode 400错误请求

  29. 29

    Azure COSMOSDB 指标 - HttpClientErrorException$BadRequest:400 错误请求 - 无法使用 REST API

热门标签

归档