JAVA: параметры HTTP-запроса командной строки - PullRequest
0 голосов
/ 31 января 2019

Я уже некоторое время получаю сообщение об ошибке "Слишком много аргументов" и не могу понять, что делать.

Формат, который мне нужно принять в командной строке:

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'

и я получаю ошибку "Слишком много аргументов" .Я думаю, что это может быть потому, что я не настроил анализатор команд для одновременного принятия нескольких опций?но я не мог найти способ сделать это.

Я с радостью оценю помощь, заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...