1

クライアントは Android アプリで、サービスは asp.net Web API です。サービスを利用しているのは私だけです。Microsoft Windows Phone 7/WCF SOAP の世界で既に行っていることを、Android-REST の世界で複製しようとしています。複雑なオブジェクトを受け取り、複雑なオブジェクトを返すメソッドが多数あります。

WCF-SOAP の世界は単純です。必要な複雑な引数を渡して、必要な複雑な結果を返すことができます。論理的には、これは単なるリモート プロシージャ コールです。

しかし、REST で同じことを行うことについて質問を投稿すると、サービスを GET、PUT、POST、および DELETE のみに制限する必要があると言われます。そして、RFC2616 に従って「適切な」ことだけを行う必要があります。これについてほとんど宗教的な方法で話す人もいます。

宗教のことは忘れて、すべてに GET を使用することの何が問題なのですか? または、すべてに POST を使用することの何が問題になっていますか? 私がしていることは、単純な RFC2616 のカテゴリーには当てはまりません。たとえば、私は車で行った旅行の何千もの足を通過していて、その旅行の別のバージョンを戻ってきて、不規則な GPS エラーが滑らかになりました。または、英語で会話を送信し、その会話をドイツ語で受信しています。

Android クライアントでは、Google-GSON を使用して、HTTP 経由で送信したいオブジェクトが既に JSON 文字列にシリアル化されています。私の質問は…</p>

これらの json 文字列を GET または POST の引数として REST サービスに送信するにはどうすればよいですか?

REST サービスへのすべての呼び出しにすべての GET (またはすべての POST) のみを使用することは可能で実行可能ですか?また、その方法は?

http GETまたはPOSTを介してjson文字列を送信する例がどこにも見つからないため、http URLでjson文字列を送信するときに投稿された、これに関するより実用的な質問があります。

ありがとう、ゲイリー

4

2 に答える 2

1

適切な HTTP 動詞を使用すると、リクエストが失敗した場合 (たとえば) に何をすべきかを単純に理解したり、特定のことを実行したりするのに非常に役立ちます。POST リクエストを送信した場合、リクエストの本文を介して送信されるストリームを取得するために、リソースを解析する必要があると暗黙的に想定されます。一方、GET を介してデータを取得する場合、リクエストは、モデル、pojo、またはその他のものにマップされるストリームとして返されると想定されます。

RESTDroidなどのライブラリを使用することをお勧めします。POJO を送信し、POJO を受信できます。これは「リソース指向」のライブラリであるため、特定のローカル リソースがリモートで同期されているかどうかをいつでも確認できます。ローカルとリモート間のデータの永続性は自動的に処理されます。

RESTDroid はアルファ版がリリースされました。RoboSpiceをご覧ください。これは REST 呼び出しを管理するための強力なライブラリですが、ローカル リソースとリモート リソース間の永続性を管理するのはユーザー次第です。

于 2013-03-18T10:48:34.050 に答える
0

1) WCF-SOAP の世界はシンプルです。必要な複雑な引数を渡して、必要な複雑な結果を返すことができます。論理的には、これは単なるリモート プロシージャ コールです。- IN REST:"必要な複雑な引数を渡して、必要な複雑な結果を返すこともできます。

2a) 宗教を忘れて、すべてに GET を使用することの何が問題になっていますか? SOAPサービスWCF/またはクラシックでは、すべてのリクエストをhttp POSTにラップしているため、単一の動詞を使用するとSOAPになるか、それについて考えることさえありません-独自の通信プロトコル:-D

2b) GET リクエストを空でないボディで技術的に構成することができます - ただし、ほとんどのサーバーはデフォルトでそれを無視し、それを読み取るのは技術的に問題があります..

質問の他の部分は、上記のPcriulanによって回答されています

于 2013-03-18T11:01:44.540 に答える