Как я могу просмотреть HTTP-запросы, отправленные через приложение rails? - PullRequest
1 голос
/ 19 июля 2009

Я пытаюсь взаимодействовать со сторонним веб-сайтом, и связь происходит следующим образом.

Отправить этот запрос

POST /Service/LabelService.asmx/GetLabelXML HTTP/1.1
Host: www.host.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
labelRequestXML=<LabelRequest> ... </LabelRequest>

Получить этот ответ

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?> <LabelRequestResponse> ... </LabelRequestResponse>

Я работаю с Rails и пытаюсь настроить это с помощью Net :: HTTP. Я испробовал несколько вещей, но мои лучшие результаты: «Существующее соединение было принудительно закрыто удаленным хостом». Вот пример одной из моих попыток.

  require 'net/http'
  require 'net/https'
  require 'uri'
  Net::HTTP.version_1_1

  def get_shipping_label
    url = URI.parse('www.host.com/LabelService/LabelService.asmx/BuyPostageXML')
    header = {"Content-Type" => "application/x-www-form-urlencoded"}
    data = "labelRequestXML=<LabelRequest></LabelRequest>"
    http = Net::HTTP.start(url.host)
    response, body = http.post('/LabelService/LabelService.asmx/BuyPostageXML', data)
  end

Теперь моя цель, очевидно, состоит в том, чтобы заставить коммуникацию работать, но что более важно, я хотел бы знать, как я мог видеть HTTP-запрос, отправляемый моим приложением rails, чтобы отладить эти проблемы в будущем.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 19 июля 2009

Вы можете использовать инструмент анализа сетевого протокола, например Wireshark .

1 голос
/ 19 июля 2009

Я бы не рекомендовал Wireshark для вашей задачи, но предложил бы OWASP WebScarab

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