如何使用带有1.6.0的CURL在WSO2中的API Manager组件中向API Publisher添加API

时间:2014-03-28 08:56:45

标签: java api curl wso2 curl-commandline

当我执行curl请求以在API Manager-Publisher中发布api时,它会显示已添加...但无法更改其状态.. !!!也无法打开该API!

我的要求:

curl -X POST -b cookies  http://my.api-site.com:9763/publisher/site/blocks/item-add/ajax/add.jag \
 -d "action=addAPI&name=TwitterAPI&context=/twitter&version=1.0.0&tier=Bronze&tier=Gold&transports=http&http_checked=http&transports=https&https_checked=https&description=Twitter&visibility=public API&tags=twitter,api&resourceCount=0&resourceMethod-0=GET,PUT,POST,DELETE,OPTIONS&resourceMethodAuthType-0=Application & Application User,Application & Application User,Application & Application User,Application & Application User,None&uriTemplate-0=/*&resourceMethodThrottlingTier-0=Unlimited, Unlimited, Unlimited, Unlimited, Unlimited&tiersCollection=Bronze,Gold,Silver,Unlimited" \
 -d 'endpoint_config={"production_endpoints":{"url":"http://search.twitter.com","config":null},"endpoint_type":"http"}'

性反应:

{"error" : true, "message" : " null"}

任何人都可以帮忙!

1 个答案:

答案 0 :(得分:0)

参数以curl传递为key1=value1&key2=value2...格式。因此,如果key1,key2,value1,value2包含任何特殊字符,例如=&?,则应该进行urlencoded。

您的问题在于此参数:

resourceMethodAuthType-0=Application & Application User,Application & Application User,Application & Application User,Application & Application User,None

你的价值中有很多&个字符。它应该是urlencoded。例如这个&应该替换为%26所以字符串将是:

resourceMethodAuthType-0=Application %26 Application User,Application %26 Application User,Application %26 Application User,Application %26 Application User,None

另一件事,如果你从windows运行命令,总是使用双引号,而不是单引号。例如:

-d "endpoint_config={\"production_endpoints\"...}"