JAVA:命令行HTTP请求选项

时间:2019-01-31 15:12:17

标签: java eclipse http parsing command

一段时间以来,我一直收到错误消息“参数过多”,无法弄清楚该怎么办。

我需要能够在命令行中接受的格式是:

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'

,出现错误“参数过多” 。我认为可能是因为我没有将命令解析器设置为一次接受多个选项吗?但我找不到任何方法。

我将非常感谢您的帮助,在此先感谢您!

0 个答案:

没有答案