HttpPostを使用してRESTfull Ruby on Railsアプリケーションにデータを送信するには、アンドロイドのApache HttpClientを使用します。Java:Ruby on Railsアプリケーションで新しい "Product"を作成するためのHTTP投稿
は、これは私のコントローラである:
# 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
そして、これは私のJavaコードです。 URL名にデータを渡す必要がありますか、それとも別の場所に設定する必要がありますか? (おそらくhttptt.setEntity?)最終的に私はJSONを使用しますが、現時点ではRailsで実際に "create"メソッドを呼び出すことができます。 RailsはPOSTを取得しますが、「作成」方法
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.0.100:3000/products/new");
HttpResponse response = httpclient.execute(httppost);
私はかなりこだわっていますし、誰かが正しい方向に私を指すことができれば幸いですで任意のコードを実行されることはありません。
私はちょうど/製品と一緒に試しましたが、私は同じ結果を得ています。 WEBrickログにはPOSTが表示されていますが、作成方法に記述したステートメントを「put」して表示されません。 – brodie31k
私の答えは編集済みです。/products/createを試してください。それがうまくいくならば、代わりに安らかなリソースのような製品を扱うためにルートを変更するべきです。それが動作しない場合、別の問題があります。 – Gdeglin