Utilisation de l'Apache HttpClient sur Android, comment puis-je envoyer des données à un Ruby sur l'application Rails REST à l'aide HttpPost.Java: HTTP Post pour créer de nouveaux "produits" dans un Ruby on Rails application
Ceci est mon contrôleur:
# POST /products
def create
@product = Product.new(params[:product])
respond_to do |format|
if @product.save
flash[:notice] = 'Product was successfully created.'
format.html { redirect_to(@product) }
format.xml { render :xml => @product, :status => :created, :location => @product }
else
format.html { render :action => "new" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
end
Et ceci est mon code Java. Dois-je transmettre les données dans le nom de l'URL ou dois-je le définir ailleurs? (httpost.setEntity peut-être?) Finalement j'utiliserai JSON mais pour l'instant je veux juste l'obtenir afin que je puisse réellement appeler la méthode "create" dans Rails. Rails devient le POST, mais jamais exécute un code dans la « créer » méthode
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.0.100:3000/products/new");
HttpResponse response = httpclient.execute(httppost);
Je suis tout à fait coincé et vous serais reconnaissant si quelqu'un pourrait me diriger dans la bonne direction.
J'ai essayé avec juste/produits et j'obtiens le même résultat. Le journal WEBrick montre qu'il obtient un POST mais il n'imprime pas et ne "met" pas les déclarations que j'ai mises dans la méthode create – brodie31k
J'ai édité ma réponse pour avoir plus d'informations. Essayez/products/create. Si cela fonctionne, vous devrez probablement modifier vos itinéraires pour traiter les produits comme une ressource reposante. Si ça ne marche pas, il y a un autre problème. – Gdeglin