2012-04-12 108 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编码。我如何得到两个?

回答