Groovy与&;CouchDB?

Groovy与&;CouchDB?,groovy,couchdb,Groovy,Couchdb,Groovy是一个新手,我一直在尝试用Groovy编写一些测试用例,用于测试REST接口。为了设置我们的测试装置,我需要清除CouchDB数据库并编写一个简单的脚本来完成这项工作,但出于某种原因,我不断从CouchDB收到未经授权的消息。减少了代码,但仍然不明白为什么,即使示例脚本现在很简单。CouchDB实例具有管理员用户设置,但这是与默认设置的唯一偏差。多次检查用户名/密码。烦人地处理来自groovy日志的请求并添加“curl-X..”可以在cmd行中工作 @Grab(group='org.

Groovy是一个新手,我一直在尝试用Groovy编写一些测试用例,用于测试REST接口。为了设置我们的测试装置,我需要清除CouchDB数据库并编写一个简单的脚本来完成这项工作,但出于某种原因,我不断从CouchDB收到未经授权的消息。减少了代码,但仍然不明白为什么,即使示例脚本现在很简单。CouchDB实例具有管理员用户设置,但这是与默认设置的唯一偏差。多次检查用户名/密码。烦人地处理来自groovy日志的请求并添加“curl-X..”可以在cmd行中工作

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0') import groovyx.net.http.RESTClient RESTClient couchDBRestApi = new RESTClient('http://localhost:5984/') couchDBRestApi.auth.basic 'scott', 'tiger' ['mydb'].each { name -> def resp = couchDBRestApi.delete(path:name) assert resp.status == 200 } @Grab(group='org.codehaus.groovy.modules.httpbuilder',module='http-builder',version='0.5.0') 导入groovyx.net.http.RESTClient RESTClient couchDBRestApi=新的RESTClient('http://localhost:5984/') couchDBRestApi.auth.basic'scott','tiger' ['mydb'].每个{name-> def resp=couchDBRestApi.delete(路径:name) 断言响应状态==200 } 查看日志,我担心有几个条目,特别是“WARN DefaultRequestDirector-Authentication error:无法响应任何挑战:{}”末尾的空列表?和"调试RESTClient-响应代码:401,;找到处理程序:org.codehaus.groovy.runtime。MethodClosure@e2e4d7' ?

完整日志内容如下:

2010-06-14 15:19:27520调试RESTClient-删除
2010-06-14 15:19:27522调试连线->“删除/mydb HTTP/1.1[EOL]”
2010-06-14 15:19:27523调试连线->“接受:/[EOL]”
2010-06-14 15:19:27523调试连线->“主机:本地主机:5984[EOL]”
2010-06-14 15:19:27524调试线路->“连接:保持活动状态[EOL]”
2010-06-14 15:19:27525调试连线->“用户代理:Apache HttpClient/4.0(java 1.5)[EOL]”
2010-06-14 15:19:27525调试连线->“接受编码:gzip,放气[EOL]”
2010-06-14 15:19:27526调试线路->“[EOL]”
2010-06-14 15:19:27526调试头->删除/mydb HTTP/1.1
2010-06-14 15:19:27527调试头->接受:/
2010-06-14 15:19:27527调试头->主机:本地主机:5984
2010-06-14 15:19:27528调试头->连接:保持活动状态
2010-06-14 15:19:27528调试头->用户代理:Apache HttpClient/4.0(java 1.5)
2010-06-14 15:19:27529调试头->接受编码:gzip,放气

2010-06-14 15:19:27543调试线Ok这与CouchDB 0.11中的一个更改有关,该更改关闭了基本的401身份验证头。现在我只需要解决如何像curl一样为RESTClient/HttpBuilder打开预认证。参考:

2010-06-14 15:19:27,520 DEBUG RESTClient - DELETE http://localhost:5984/mydb 2010-06-14 15:19:27,522 DEBUG wire -> "DELETE /mydb HTTP/1.1[EOL]" 2010-06-14 15:19:27,523 DEBUG wire -> "Accept: /[EOL]" 2010-06-14 15:19:27,523 DEBUG wire -> "Host: localhost:5984[EOL]" 2010-06-14 15:19:27,524 DEBUG wire -> "Connection: Keep-Alive[EOL]" 2010-06-14 15:19:27,525 DEBUG wire -> "User-Agent: Apache-HttpClient/4.0 (java 1.5)[EOL]" 2010-06-14 15:19:27,525 DEBUG wire -> "Accept-Encoding: gzip,deflate[EOL]" 2010-06-14 15:19:27,526 DEBUG wire -> "[EOL]" 2010-06-14 15:19:27,526 DEBUG headers -> DELETE /mydb HTTP/1.1 2010-06-14 15:19:27,527 DEBUG headers -> Accept: / 2010-06-14 15:19:27,527 DEBUG headers -> Host: localhost:5984 2010-06-14 15:19:27,528 DEBUG headers -> Connection: Keep-Alive 2010-06-14 15:19:27,528 DEBUG headers -> User-Agent: Apache-HttpClient/4.0 (java 1.5) 2010-06-14 15:19:27,529 DEBUG headers -> Accept-Encoding: gzip,deflate 2010-06-14 15:19:27,543 DEBUG wire <- "HTTP/1.1 401 Unauthorized[EOL]" 2010-06-14 15:19:27,543 DEBUG wire <- "Server: CouchDB/0.11.0 (Erlang OTP/R13B)[EOL]" 2010-06-14 15:19:27,544 DEBUG wire <- "Date: Mon, 14 Jun 2010 14:19:27 GMT[EOL]" 2010-06-14 15:19:27,544 DEBUG wire <- "Content-Type: text/plain;charset=utf-8[EOL]" 2010-06-14 15:19:27,544 DEBUG wire <- "Content-Length: 64[EOL]" 2010-06-14 15:19:27,545 DEBUG wire <- "Cache-Control: must-revalidate[EOL]" 2010-06-14 15:19:27,545 DEBUG wire <- "[EOL]" 2010-06-14 15:19:27,545 DEBUG headers <- HTTP/1.1 401 Unauthorized 2010-06-14 15:19:27,545 DEBUG headers <- Server: CouchDB/0.11.0 (Erlang OTP/R13B) 2010-06-14 15:19:27,546 DEBUG headers <- Date: Mon, 14 Jun 2010 14:19:27 GMT 2010-06-14 15:19:27,546 DEBUG headers <- Content-Type: text/plain;charset=utf-8 2010-06-14 15:19:27,546 DEBUG headers <- Content-Length: 64 2010-06-14 15:19:27,547 DEBUG headers <- Cache-Control: must-revalidate 2010-06-14 15:19:27,548 WARN DefaultRequestDirector - Authentication error: Unable to respond to any of these challenges: {} 2010-06-14 15:19:27,548 DEBUG RESTClient - Response code: 401; found handler: org.codehaus.groovy.runtime.MethodClosure@e2e4d7 2010-06-14 15:19:27,549 DEBUG RESTClient - Parsing response as: text/plain 2010-06-14 15:19:27,549 DEBUG RESTClient - Parsed data to instance of: class java.io.InputStreamReader 2010-06-14 15:19:27,550 DEBUG wire <- "{"error":"unauthorized","reason":"You are not a server admin."}[\n]"