标签: httpbuilder

Grails REST客户端插件 - PUT正文内容

插件方面以及HTTPBuilder方面的文档似乎都缺乏.我试图通过put方法提交一些json,但它一直告诉我put()不喜欢我正在喂它的地图.

有没有人使用Grails REST Client插件有一个PUT的例子?这是我尝试过的:

withHttp(uri: "http://foo/doo/roo") {
        def bodyContent = [
            pano: jsonText
        ]

        def json = put(body: bodyContent)

        if (json.stat == 'ok') {
          wsr.success = true
        }
}
Run Code Online (Sandbox Code Playgroud)

错误:

No signature of method: com.wbr.pano.PanService.put() is applicable for argument types: (java.util.LinkedHashMap) values: [[body:
    {
      "class":"com.wbr.platform.Pano",
      "errorMessage":"null",
      "imageSize":0,
      "id":26,
      "completed":"2011-03-20 3:50:27.257",
      "downloading":"2011-03-20 3:49:12.269",
      "processing":"2011-03-20 3:49:42.911",
      "uploading":"2011-03-20 3:50:12.107"
    }
  ]]
Run Code Online (Sandbox Code Playgroud)

rest grails grails-plugin httpbuilder

2
推荐指数
1
解决办法
4015
查看次数

使用OAuth的api.github.com的Groovy HTTPBuilder

美好的一天!
我在github上生成了一个特殊的个人访问令牌.我想将一些代码搜索到私有存储库中.当我使用curl时,一切正常:

curl  -H 'Authorization: token <MY_PERSONAL_TOKEN>' -H 'Accept: application/vnd.github.v3.text-match+json' https://api.github.com/search/code?q=FieldDescriptionResponseChecker+@MY_PRIVATE_REPO&sort=stars&order=desc;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用groovy HTTPBuilder时

class GithubSearchService {

    private String authToken


    public GithubSearchService(String authToken) {
        this.authToken = authToken
    }


    public void search(String query) {
        def http = new HTTPBuilder('https://api.github.com')

        http.request( GET, TEXT) { req ->
            uri.path = '/search/code'
            uri.query = [ q: query]
            headers.'Authorization' = "token $authToken"
            headers.'Accept' = 'application/vnd.github.v3.text-match+json'

            response.success = { resp, reader ->
                println "Got response: ${resp.statusLine}"
                println "Content-Type: ${resp.headers.'Content-Type'}"
                println reader.text
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有403例外

Exception in …
Run Code Online (Sandbox Code Playgroud)

groovy oauth github httpbuilder

2
推荐指数
1
解决办法
3220
查看次数

无法在 HttpBuilder 版本 0.7.1 中使用 ignoreSSLIssues

Java 8 | Groovy 语言 |
IDE:IntelliJ IDEA | 摇篮 3

我有 SSL 问题

代码:

import groovyx.net.http.RESTClient

def client = new RESTClient()
client.ignoreSSLIssues()
def result = client.get(uri: "https://sacvo76l6b.execute-api.ap-northeast-
1.amazonaws.com/")
Run Code Online (Sandbox Code Playgroud)

它抛出以下异常

javax.net.ssl.SSLPeerUnverifiedException:对等方未通过身份验证

在 sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431) 在 org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) 在 org.apache.http.conn.ssl.SSLSocketFactory .connectSocket(SSLSocketFactory.java:572) 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) 在 org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) ) 在 org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) 在 org.apache.http。 impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044) 在 groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:515) 在 groovyx.net.http.RESTClient.get (RESTClient.java:119) 在 Test.getAuthCode_(Test.groovy:53)

虽然我正在使用ignoreSSLIssues(),但它似乎对我不起作用。

我也下载了 0.7.2 版本来验证这个问题,但它也是同样的问题

PS1:如果我使用 Postman,Uri 对我来说很好用

PS2:HttpURLConnection 库也适用于我

你有什么想法吗?非常感谢

groovy ssl-certificate httpbuilder

2
推荐指数
1
解决办法
1965
查看次数

Groovy HTTPBuilder和Jackson

在根据请求设置正文时,我可以使用Jackson而不是JSON-lib和Groovy的HTTPBuilder吗?

例:

client.request(method){
      uri.path = path
      requestContentType = JSON

      body = customer

      response.success = { HttpResponseDecorator resp, JSONObject returnedUser ->

        customer = getMapper().readValue(returnedUser.content[0].toString(), Customer.class)
        return customer
      }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我在处理响应时使用了Jackson,但我相信请求是使用JSON-lib.

groovy json jackson httpbuilder

1
推荐指数
1
解决办法
2427
查看次数

HTTPBuilder GET的JSON格式结果在0.5.2和0.6之间变化

我们最近更新了REST集成测试的依赖项,该测试使用了Groovy,HTTPBuilder,JSONAssert和Junit.当我们从HTTPBuilder 0.5.2到0.6时,我们的许多测试都失败了.

我们发现由于HTTPBuilder中的一个新"功能"提供了"对已注册内容类型的自动响应解析",响应格式发生了变化.

旧的,(0.5.2)格式,预期响应:

[ { "name":"Portfolio_REST_Test01", "description":"", "referenceValueType":"Net Value", "unitType":"SHARES", "tags":[] } ]

新的(0.6.2)响应格式:

[{tags=[], referenceValueType=Net Value, unitType=SHARES, description=, name=Portfolio_REST_Test01}]
Run Code Online (Sandbox Code Playgroud)

当JSONAssert尝试解析值为空字符串的命名值时,会出现问题,请参阅上面示例中的"描述".JSONAssert期望一个字符遵循等号而不是逗号,并在遇到时抛出异常.

groovy json httpbuilder jsonassert

1
推荐指数
1
解决办法
6399
查看次数

Groovy中的HTTP身份验证?

def http = new HTTPBuilder(url)
http.auth.basic username, password

def data = new URL(url)

def response = data.getText()

def relativePaths = new XmlParser().parseText(response)

relativePaths.each {page ->

    def link = page.content.@href.first()

    if(link.contains(".txt")){
        println link
    }

}
Run Code Online (Sandbox Code Playgroud)

嗨,

当我试图运行它时,我得到一个401.它似乎在这里:

def response = data.getText()
Run Code Online (Sandbox Code Playgroud)

它实际上不再被认证(或根本没有)?在Ruby中,我会这样写:

(open(url, :http_basic_authentication => [username, password])
data = Nokogiri::XML(open(url, :http_basic_authentication => [username, password])))
Run Code Online (Sandbox Code Playgroud)

在Groovy中会是什么样子?我用httpbuilder错了吗?非常感谢提前!

更新1:

应用更改后:

def http = new HTTPBuilder(url)
http.auth.basic username, password

http.get(path: url, contentType: ContentType.TEXT) { resp, reader ->

    def relativePaths = new XmlParser().parse(reader)

    relativePaths.each …
Run Code Online (Sandbox Code Playgroud)

authentication groovy httpbuilder

1
推荐指数
1
解决办法
6862
查看次数