На этот вопрос, вероятно, ответили и в других местах, но поскольку этот вопрос всплывает при поиске в google для actionwebservice и получении запросов, я подумал, что отвечу на него здесь.
По умолчанию AWS отклоняет запросы без POST. В частности, он содержит код в action_controller_dispatcher.rb, который гласит:
def dispatch_web_service_request
if request.get?
render_text('GET not supported', '500 GET not supported')
return
end
..
По сути, вы должны либо настроить запрос на POST-запрос, чем получать его. Или вы должны переопределить обработку запросов GET в AWS. (Вы можете попробовать отредактировать код внутри гема, но (1) он будет перезаписан при обновлении гема и (2) я не уверен, насколько хороша идея, которая в целом, и (3) я никогда не пробовал это.
Первый вариант, скорее всего, более уместен, если вы контролируете код, генерирующий запрос. Если нет, то у Zack Chandler был обходной путь (для подключения QuickBooks к веб-сервису, но он должен работать в любом случае), здесь .
Я цитирую это ниже в случае изменения URL.
Создать файл патча в lib / action_web_service_ext.rb
module ActionController
class Base
alias_method :old_dispatch_web_service_request, :dispatch_web_service_request
# --- [ QBWC requests the api url with a GET request upon loading the QWC file for the first time ] ---
def dispatch_web_service_request
render :nothing => true and return if request.get?
old_dispatch_web_service_request
end
end
end
Включить патч в config / environment.rb
require 'action_web_service_ext.rb'
Очевидно, что код внутри метода dispatch_web_service_request специфичен для QuickBooks, но вы должны понять это.
Надеюсь, это поможет, и я надеюсь, Зак не возражает против того, чтобы я делал репост.