2012-04-12 75 views
0

我有一個服務正在偵聽github服務掛鉤,以執行自動部署。有時我需要手動觸發(不需要github干預)。爲此,我正在模擬github發送的POST請求(post-receive-URLs)。仿真github服務掛鉤帶捲曲

我的數據(my.json)看起來是這樣的(什麼github上正在發送的有限子集 - 我不需要更多):

{ 
    "action"  : "deploy_from_scratch_with_bundle", 
    "pusher"  : { "email" : "[email protected]" }, 
    "ref"   : "refs/heads/master" 
} 

我試着用捲曲POST:

curl -X POST $URL --data-urlencode "@my.json" --header "Content-Type: application/x-www-form-urlencoded" 

問題是github上正在發佈這樣的:

payload=%7B%22pusher%22%3A%7B%22name%22%3A%22none%22%7D%2C%22repository%22%3 
A%7B%22name%22%3A%liferay-plugins%22%2C%22created_at%22%3A%222011%2F12%2F07%2011%3A52... 

請參閱payload=在那裏?這看起來像一個表單字段。我不知道如何將表單字段與urlencoding結合起來。要POST表單域,我會這樣做:

curl -X POST $URL -F "[email protected]" 

但是JSON不會被url編碼。我如何得到兩個?

回答