CURL PUT после перенаправления - PullRequest
1 голос
/ 15 марта 2019

У меня есть URL-адрес, который сокращен с помощью Google Firebase из-за системных ограничений.Мне нужно иметь возможность выполнять команды curl PUT и GET.Укороченный URL-адрес в конечном итоге делает перенаправления, где я верю, что мои проблемы возникают.Я получил GET для работы, используя флаг -L.

curl -X GET -L "http://myshorturl.com/hostedfile" --output GET.csv

Однако я все еще не могу заставить PUT работать

curl -X PUT -L "http://myshorturl.com/hostedfile" --upload-file PUT.csv

выдает мне ошибку

Ошибка 405 (не найдена)

это, кажется, означает, что PUT не разрешен, но я знаю, что моя конечная точка действительно позволяет, когда я делаю то же самое, не сокращая URL, все работает отлично.

curl -X PUT -L "http://mymuchlongerurl.com/hostedfile" --upload-file PUT.csv

Любые идеи покак обойти это?

1 Ответ

1 голос
/ 16 марта 2019

К сожалению, когда методы PUT и POST запрашиваются по сокращенному URL-адресу, возникает ошибка, в то время как для метода GET запрос работает нормально, используя параметр -L.Итак, как обходной путь запроса PUT с использованием сокращенного URL, как насчет этого?

Модифицированная команда curl:

curl -X PUT -L `curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}'` --upload-file PUT.csv
  • curl -D - "http://myshorturl.com/hostedfile" извлекает информацию о перенаправлении.
    • - из -D - означает, что результат отображается на стандартный вывод.
  • curl -D - "http://myshorturl.com/hostedfile" | awk '/Location/ {print $NF}' возвращает перенаправленный URL-адрес.
  • В вашем случае-L модифицированной команды curl может не потребоваться.Но я не мог проверить это.Я прошу прощения за это.

Ссылка:

Если этого не былоОбходной путь вы хотите, и это не сработало, я прошу прощения.

...