4

カスタムGrapeAPI(Ruby on Rails)を使用してAndroidでRESTクライアントを実現したいのですが、どこから始めればよいのか(つまり、Android OSに実装するための優れたプラクティスがあるかどうか...または最近の良いがあるかどうか)を考えていました。それについて。)

ありがとうございました。すぐにソリューションを投稿します。

つまり、基本的に、残りのAPI(Grape内)には次のようなメソッドがあります。

「http:// localhost:3000 / api /signin/」

基本的に、このコマンドラインを実行すると、アクセス/認証が可能になります。

curl -H "Accept: application/vnd.lzgo-v1+json" -d email=myuser -d password=mypassword http://localhost:3000/api/signin/

今、私は明らかにアンドロイドで私のAPIにアクセスするための一種の一般的な方法を構築しようとしています。これまでのところ、私はこの男がRestServiceを実装することを行ってきました。

Intent intent = new Intent(activity, com.android.lzgo.service.RESTService.class);
intent.setData(Uri.parse("http://localhost:3000/api/signin/"));

Bundle params = new Bundle();
params.putString("email", "myuser");
params.putString("password", "mypassword");

intent.putExtra(RESTService.EXTRA_HTTP_VERB, RESTService.POST);
intent.putExtra(RESTService.EXTRA_PARAMS, params);
intent.putExtra(RESTService.EXTRA_RESULT_RECEIVER, getResultReceiver());

それから、私の場合がPOSTの場合、RestServiceの実装で少し混乱します。

UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(paramsToList(params));

postRequest.setHeader("Accept", "application/vnd.lzgo.v1+json");

postRequest.setEntity(formEntity);

一番上の私のURLを見ると、それはパラメーターのように見えるので、代わりにpostRequest.setParams()...を使用するかもしれません。

4

1 に答える 1

1

エミュレーターを使用する場合、localhostはデバイス自体のループバックサービスを指し、予想どおりにマシン上のサービスを指すことはないことを学びました。

実際のマシンにアクセスするには10.0.2.2を使用する必要がありました。これは、開発を支援するために設定されたエイリアスです。

于 2012-10-04T14:57:10.820 に答える