2015-04-24 3 views
3

Мой запрос выглядит так, но когда я пытаюсь запустить этот код, я получаю эту ошибку:НЕ НАЙДЕНО используя restclient

@Grab(group='org.codehaus.groovy.modules.httpbuilder',module='http-builder', version='0.7') 

import groovy.json.JsonOutput 

import groovy.json.JsonBuilder 
import groovyx.net.http.RESTClient 
import static groovyx.net.http.ContentType.* 
import groovyx.net.http.HttpResponseException 


public PaymentSpring() throws Exception { 
def username ='test_XXXXXXXXXXXXXXXXXXXX' 
def resp 
def https = new RESTClient('https://api.paymentspring.com/api/v1') 
https.auth.basic(username,'') 
def charge= [ 
    card_owner_name  : 'test tset', 
    card_number  : '345829002709133', 
    card_exp_month:'12', 
    card_exp_year : '2015', 
    csc:'999', 
    amount:'100.00', 
    email_address:'[email protected]', 
    send_receipt : true 
] 
try { 
    resp = https.post(
    path:'/charge', 
    requestContentType: URLENC,//request content synchronously for the  "headers" 
    headers: ['Content-Type': 'application/x-www-form-urlencoded'], 
    body:charge 
) 

} catch(HttpResponseException ex) { 
    println ex 
} 
    println resp 

результат:

groovyx.net.http.HttpResponseException: Not Found 
null 

ответ

4

Базовый URI был указан неверно - оно должно только имя хоста - без какого-либо пути. Следующий сценарий работает, но с ошибкой 401:

@Grab(group='org.codehaus.groovy.modules.http-builder',module='http-builder', version='0.7.1') 
@Grab(group='org.slf4j', module='slf4j-log4j12', version='1.7.7') 
@Grab(group='org.slf4j', module='jcl-over-slf4j', version='1.7.7') 

import groovy.json.JsonOutput 
import groovyx.net.http.RESTClient 
import groovyx.net.http.HttpResponseException 
import static groovyx.net.http.ContentType.* 


def username ='test_XXXXXXXXXXXXXXXXXXXX' 

def https = new RESTClient('https://api.paymentspring.com/') 
https.auth.basic(username, '') 

def charge = [ 
    card_owner_name : 'test tset', 
    card_number  : '345829002709133', 
    card_exp_month : '12', 
    card_exp_year : '2015', 
    csc    : '999', 
    amount   : '100.00', 
    email_address : '[email protected]', 
    send_receipt  : true, 
] 

try { 
    def resp = https.post(
     path:'api/v1/charge', 
     requestContentType: URLENC, 
     headers: ['Content-Type': 'application/x-www-form-urlencoded'], 
     body:charge, 
    ) 
} catch(HttpResponseException e) { 
    r = e.response 
    println("Success: $r.success") 
    println("Status: $r.status") 
    println("Reason: $r.statusLine.reasonPhrase") 
    println("Content: \n${JsonOutput.prettyPrint(JsonOutput.toJson(r.data))}") 
} 
Смежные вопросы