java - 如何修复服务器返回的 HTTP 响应代码 400 并且无法处理转换
问题描述
我正在尝试通过 java 编码进行 JIRA 转换,大部分时间它都可以工作,但是 jira rest api 调用有时会返回以下错误:(实际上有这个错误,转换被处理)
java.io.IOException: Server returned HTTP response code: 400 for URL: http://testingSite/jira/rest/api/latest/issue/ABC-123/transitions
此外,在某些情况下,rest api 调用不会返回错误,但不会进行转换。
这是我的编码,大部分时间它都有效,所以它毁了我的日子来弄清楚发生了什么。
try {
String authkey = "YWRtaW46cGFzc3dvcmQ=";
URL url = new URL("http://testingSite/jira/rest/api/latest/issue/ABC-123/transitions");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Basic " + authkey);
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
OutputStream os = connection.getOutputStream();
String data = "{\"transition\": {\"id\": \"71\"}}";
os.write(data.toString().getBytes("UTF-8"));
os.close();
content = connection.getInputStream();
in = new InputStreamReader(content);
br = new BufferedReader(in);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
错误来自这一行:
content = connection.getInputStream();
我希望没有例外,并且所有转换都已处理,但这种行为对我来说很奇怪。
行为 1:服务器返回 HTTP 响应代码:400 但已处理转换
行为 2:服务器不返回任何错误但未处理转换
解决方案
所以我在这里寻找参考文档。它指出
POST:400 - 如果没有指定转换。
您已经硬编码了转换 id,并且对于这种类型的问题,它可能具有不同的转换 id 或类似的东西。试着打电话
GET /rest/api/2/issue/{issueIdOrKey}/transitions?{transitionId}
验证您的过渡确实存在。
推荐阅读
- android - 如何使用 ViewModel 在 Android 中保留自定义视图的数据?
- python - 在没有任何包导入的情况下在 Python 中打印网格
- excel - 使用带有 excel vba 的内置 Microsoft Translator
- apache-flink - 为什么 Flink ListCheckPointed 不推荐用于操作员状态
- html - 在 Django 中无法从搜索栏呈现结果
- python - 无法在 Windows 10 上安装 hunspell
- ruby - Ruby 中数字数据类型的大小
- c# - 如何使用 Newtonsoft.Json 反序列化包含抽象类属性的对象
- css - 反应计时器没有正确转换
- database - 了解键值数据库范围查询