一段时间以来,我一直收到错误消息“参数过多”,无法弄清楚该怎么办。
我需要能够在命令行中接受的格式是:
httpc (get|post) [-v] (-h "k:v")* [-d inline-data] [-f file] URL
如果用户输入httpc get,则可以选择具有-v,带有-h和URL的特定标头 如果用户输入httpc帖子,则可以选择具有-v,带有-h,-d或-f的特定标题以及URL。
我已经做过一些研究,发现我需要一个命令行解析器,所以我选择了 args4j 。这是我声明所有变量的方式:
@Argument (required = false, index = 0, usage = "Protocol Type - get|post")
private String prtclType;
@Option (name = "-v", usage = "Verbose Option - ON|OFF")
private Boolean verboseOpt;
@Option(name = "-h")
private Map <String, String> headerList = new <String, String> HashMap();
@Option(name = "-d", forbids = {"-f"})
private Map <String, String> inline = new <String, String> HashMap();
@Option(name = "-f", forbids={"-d"})
private File file;
@Option(name = "-o", usage = "To print the response to a text file")
private static File outputFile;
@Argument (required = false, index = 1, usage = "URL - Http://...")
private String myURL;
@Option (name = "-help", help = true, usage = "Help message")
private boolean helpMenu;
然后在项目中进入Java eclipse,然后选择运行->运行配置->参数,然后输入以下内容:
httpc get 'http://httpbin.org/get?course=networking&assignment=1'
,出现错误“参数过多” 。我认为可能是因为我没有将命令解析器设置为一次接受多个选项吗?但我找不到任何方法。
我将非常感谢您的帮助,在此先感谢您!