2015-04-19 55 views
2

我無法在groovy中使用Google rest API。帶有JSON的Google QPX API帖子在Groovy上返回「HTTP/1.1 403 Forbidden」

我用groovy:S和我使用HTTPBuilder來詢問服務的新手。我的代碼是:

public static void testJSONPost() { 
def builder = new HTTPBuilder("https://www.googleapis.com/qpxExpress/v1/trips/search?key={$MY_WEB_KEY}") 
    def result = builder.request(POST, JSON) { req -> 
     uri.query = ["request": ["passengers": ["adultCount": 1],"slice": [["origin": "BOS","destination": "LAX","date": "2015-05-13"],["origin": "LAX","destination": "BOS","date": "2015-05-23"]]]] 
      response.success = {resp, json -> 
        println "JSON POST Success: ${resp.statusLine}" 

        return json.name 
      } 

      response.failure = {resp -> 
        println "JSON POST Failed: ${resp.statusLine}" 
      } 
    } 
} 

testJSONPost() 

我試着用捲曲的例子,它的工作:

curl -d @reques.json --header "Content-Type: application/json" https://www.googleapis.com/qpxExpress/v1/trips/search?key=MY_WEB_KEY 

的 「reques.json」 的內容是:

{ 
    "request": { 
    "passengers": { 
     "adultCount": 1 
    }, 
    "slice": [ 
     { 
     "origin": "BOS", 
     "destination": "LAX", 
     "date": "2015-05-13" 
     }, 
     { 
     "origin": "LAX", 
     "destination": "BOS", 
     "date": "2015-06-06" 
     } 
    ] 
    } 
} 

,即時通訊使用是關鍵一個web密鑰。

那麼我會繼續搜索和嘗試。

+0

你什麼錯誤? MY_KEY與MY_WEB_KEY相同嗎? reques.json的內容是什麼? –

+0

@tim_yates感謝您的快速評論。我編輯了這個問題。 錯誤是:403禁止 我新使用httpBuilder我試圖找到錯誤消息,但我與那場戰鬥...:S – paulofer85

+0

你的curl命令似乎沒有做一個POST afaict。你不需要一個-X POST嗎?另外,在groovy代碼中,您似乎將地圖添加到了url中,而不是將它發送到請求的主體中?現在不在計算機上進行驗證,但:-( –

回答

1

在groovy代碼中,您似乎將地圖添加到了url中,而不是在請求的主體中發送它?

爲了增加身體的常規,改變你的

uri.query = ... 

線開始

body = ... 
+0

我試圖添加爲答案但我沒有足夠的信譽來回答或給予投票 – paulofer85

+0

無後顧之憂......是否允許您接受答案? –

+0

現在是:)。謝謝! – paulofer85