2009-07-18 5 views
1

Ich versuche, mit einer Website von Drittanbietern zu verbinden, und die Kommunikation läuft wie folgt. Empfangen SendenWie kann ich HTTP-Anfragen anzeigen, die über eine Rails-Anwendung gesendet werden?

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> 

Anfrage diese Antwort

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

ich mit Rails zu arbeiten, und so versuche ich, dieses Netz mit aufgebaut zu bekommen :: HTTP. Ich habe eine Handvoll Dinge ausprobiert, aber meine besten Ergebnisse sind "Eine bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossen." Hier ist ein Beispiel für einen meiner Versuche.

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 

Jetzt ist mein Ziel offensichtlich wird immer die Kommunikation zu arbeiten, aber noch wichtiger würde Ich mag wissen, wie ich die HTTP-Anforderung durch meine Rails-Anwendung, um diese Probleme in der Zukunft zu debuggen gesendet werden sehen konnte.

Irgendwelche Ideen?

Antwort

1

Ich würde Wireshark für Ihre Aufgabe nicht empfehlen, würde aber vorschlagen OWASP WebScarab

Verwandte Themen