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

Redmine API更新时间条目没有实现?

蒲德曜
2023-03-14

更新时间条目:http://www.redmine.org/projects/redmine/wiki/rest_timeentrients#更新-a-time-entry结果总是以404

然后,我删除了如下所示的扩展名:/time_entries/[id],得到了一个422,但是响应给出了一个完整的HTML页面,其中包括:

我不是Ruby/Rails开发人员,但在routes.rb中我可以看到:

match '/time_entries/:id', :to => 'timelog#destroy', :via => :delete, :id => /\d+/

这是:/time_entries/:id的唯一条目

这是我用来更新问题的Groovy代码

def baseUrl = new URL("${Config.host}/time_entries/${timeEntry.key}.xml?key=${Config.redmineKey}")
new HTTPBuilder(baseUrl).request(Method.PUT, ContentType.XML) {
    body = "<time_entry><id>9956</id><project_id>25</project_id><issue_id>${timeEntry.key}</issue_id><spent_on>${spentOnDate}</spent_on><hours>${new Date(timeEntry.value.toInteger()).format("HH:mm")}</hours><activity_id>9</activity_id><comments></comments></time_entry>"
    response.success = { resp, xml ->
        println "Success! ${resp.status}"
    }
    response.failure = { resp ->
        println "Request failed with status ${resp.status}"
        def outputStream = new ByteArrayOutputStream()
        resp.entity.writeTo(outputStream)
        def errorMsg = outputStream.toString('utf8')
        println errorMsg
    }
}

共有1个答案

贡斌
2023-03-14

下面的代码使用nodejs并使用xml格式:

const http = require('http')

var body = ' <?xml version="1.0" ?>' +
           '<time_entry><id>1</id><issue_id>1</issue_id><spent_on>2019-02-02</spent_on><hours>9.0</hours></time_entry>';

var postRequest = {
    host: "localhost",
    path: "/time_entries/1.xml",
    port: 3000,
    method: "PUT",
    headers: {
        'Content-Type': 'text/xml',
        'X-Redmine-API-Key': '95228de814b46d8980447c00591460598990d469',
        'Content-Length': Buffer.byteLength(body)
    }
};

var buffer = "";

var req = http.request( postRequest, function( res )    {

   console.log( res.statusCode );
   var buffer = "";
   res.on( "data", function( data ) { buffer = buffer + data; } );
   res.on( "end", function( data ) { console.log( buffer ); } );

});

req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
});

req.write( body );
req.end();

确保正确配置postRequest参数,如X-Redmine-API-key路径、主机、端口和方法。

 类似资料:
  • 问题内容: 我在mysql表中具有属性为“ ON UPDATE CURRENT_TIMESTAMP”的时间戳。有没有办法在特殊情况下手动禁用更新时间戳?(例如:更新条目以修改博客文章,但不重新添加日期) 问题答案: 有没有办法在特殊情况下手动禁用更新时间戳?(例如:更新条目以修改博客文章,但不重新添加日期) 听起来您需要配置默认约束,以便仅在插入时填充列: 将其更改为仅这意味着任何修订都不会触发时

  • 我正在使用Spring框架配置一个简单的JPA应用程序。我的目标是在JUnit测试运行期间用数据填充db。我明白这并不理想。但我想要它有不同的用途。 下面是我的 test-context.xml

  • 本文向大家介绍WPF实现进度条实时更新效果,包括了WPF实现进度条实时更新效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了WPF实现一个实时更新的进度条,供大家参考,具体内容如下 效果图 xaml代码 后台代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。 

  • 我试图用python模块tkinter创建一个带有输入框的窗口,来制作一个石头剪刀剪纸游戏。然而,每次按下按钮时,我都在努力使输入框更新到另一个值。 我正在纠结的是,如果我要编写作为输入(假设计算机响应始终为0): 那么我的输出将是这是正确的,但是,如果我的下一个输入是一些随机的东西,如,则所需的输出将是。然而,似乎第一个输入被保存并继续使用,因为输出仍然是。 另一方面,如果我们从输入开始,则输出

  • 代码如下: 期望触发了事件页面上就更新数据

  • 问题内容: 通过网络嵌套更新,打印“ abc已更新”,但实际值在Redis数据库中不更新。 注意:-上面的代码在localhost上有效,但更新未在heroku-redistogo上显示。 编辑:-我在本地主机上运行代码,redis连接到Redistogo。使用以下代码:- 设置快速会议:- 我还使用以下代码创建了另一个redisClient: 问题答案: 在Heroku上运行此代码时,您是否在控

  • 我有一个带有“Status”布尔值的付款模型,该布尔值默认为false。付款后,我需要将特定付款的“状态”更新为true。 这是我一直试图用来更改特定数据库条目的代码,但它并没有改变它。我做错了什么? 谢谢 这就是最终起作用的原因:

  • Updated可以让您在记录插入或每次记录更新时自动更新数据库中的标记字段为当前时间,需要在xorm标记中使用updated标记,如下所示进行标记,对应的字段可以为time.Time或者自定义的time.Time或者int,int64等int类型。 type User struct { Id int64 Name string UpdatedAt time.Time