7
votes

HTTP POST XML Contenu du concombre

J'essaie d'envoyer du contenu XML via Post à une méthode du contrôleur («parse») («index») dans un projet de rails simples. Ce n'est pas reposant car mon nom de modèle est différent, disons, "voitures". J'ai ce qui suit dans un test fonctionnel qui fonctionne:

ActionController::Routing::Routes.draw do |map|
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end


3 commentaires

@MBUF, si l'une des réponses résolut votre problème, vous devez la marquer comme "Réponse" en cliquant sur la coche ci-dessous la zone de vote.


Fait. Merci de me le faire savoir!


J'ai posté comment tester les postes JSON en utilisant des rails et un concombre ici: Stackoverflow.com/Questtions/5098626/...


3 Réponses :


11
votes

webrat ne vous aidera pas ici, c'est pour les interactions basées sur le navigateur, de sorte que si vous spécifiez une API, cela ne vous aidera pas.

Vous pouvez utiliser "Post" dans le concombre, mais vous devez fournir le chemin complet de la action, pas seulement l'action. De plus, passez dans l'en-tête de type de contenu afin que les rails sait que vous passez en XML. P> xxx pré>

sur le côté de réponse, vous pouvez procéder comme suit: P>

response.should be_success


1 commentaires

Accepté. Merci pour votre réponse!



12
votes

La solution de Patrick Ritchie m'a également aidé aussi, mais j'avais besoin de faire une légère modification pour que cela fonctionne avec des rails 3.

post("/controller/index", xml_result, {"CONTENT_TYPE" => "text/xml"})


0 commentaires

1
votes

Merci beaucoup de gars, j'ai passé toute la journée à jurons. J'ajouterai un exemple avec l'authentification de base et avec Json, si d'autres personnes que moi la recherchent. BTW, Application / XML et TEXT / XML fonctionne, mais pour JSON, vous avez besoin Application / JSON . xxx

et json xxx

et je les utilise dans spécifications / demandes sans aucun truc de navigateur webrat ou capybara .


0 commentaires