【问题标题】:JIRA API return Bad Request for Worklog insertJIRA API 返回错误的工作日志插入请求
【发布时间】:2017-08-21 15:30:12
【问题描述】:

我正在尝试为 JIRA Software 中的问题添加工作日志,但我收到了错误的请求。

有谁知道可能是什么问题?

var httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders
                    .Authorization = new AuthenticationHeaderValue(
                                                        "Basic",
                                                        Convert.ToBase64String(
                                                                    convertStringtoByteArray(
                                                                                userName,
                                                                                userPassword)));


var json = Newtonsoft.Json.JsonConvert.SerializeObject(
                new
                {
                    comment = "I did some work here.",
                    started = "2017-08-17T10:52:10.475+0000",
                    timeSpentSeconds = 12000
                }; 

var content = new StringContent(json, Encoding.UTF8, "application/json");
var apiUrl = "https://<ACCOUNT>.atlassian.net/rest/api/2/issue/{KEY}/worklog"
var result = httpClient .PostAsync(apiUrl, content).Result;

提前致谢!

【问题讨论】:

  • 您好,请提供MCVE,社区可能会更好地提供帮助(例如,未提供convertStringToByteArray)
  • 如果你使用例如fiddler 查看原始响应,您可能会获得有关错误的更多信息

标签: c# jira-rest-api


【解决方案1】:

您的实例可能还需要visibility 字段。

根据Jira Rest API docs 示例请求是:

{
    "comment": "I did some work here.",
    "visibility": {
        "type": "group",
        "value": "jira-developers"
     },
    "started": "2017-07-31T14:11:53.507+0000",
    "timeSpentSeconds": 12000
}

您可以添加visibility 值并检查吗?

【讨论】:

    【解决方案2】:

    字符串转换的问题,请尝试这样

    1. 使用 JObject 准备工作日志对象

    JObject workLogObject = new JObject( new JProperty("comment", jiraText), new JProperty("started", strDate), new JProperty("timeSpentSeconds", seconds));

    1. 使用格式选项创建字符串 var workLogData = workLog.ToString(Newtonsoft.Json.Formatting.Indented); var content = new StringContent(workLogData, Encoding.UTF8, "application/json");

    2. 传递内容 var result = httpClient .PostAsync(apiUrl, content).Result;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多