第五課:RESTfulクライアントプログラミング

3175 ワード

レッスンサイト:
  • http://ss.sysu.edu.cn/~pml/dct/5_レスファルclient.
  • 関連記事:
  • 第一課:Java階段とSocket通信実験
  • 第二課:Socket通信とHTTPサーバ
  • 第三課:Java Webプログラミングの原理
  • 第四課:RESTful Webserviceプログラミング
  • 練習問題の部分
    実験1で実行/Sent HTTP PUT request to udate customer infoに対応するcurlを書き出し、出力結果となります。
    curl-v-H「Contect Type:appliation/xml」-d「Mary 123」-X PUT「http://localhost:9000/customerservice/customers「
  • STATE:INIT=>CONNET handle 0 x 600527 f 0ライン1108
    問題1では、プログラムの実行過程を簡単に説明します。
    
    //     ,    
    System.out.println("
    "); System.out.println("Sent HTTP PUT request to update customer info"); // client Client client = new Client(); // xml String inputFile = client.getClass().getResource("/update_customer.xml").getFile(); // xml URIResolver resolver = new URIResolver(inputFile); // xml URL File input = new File(resolver.getURI()); // PutMethod PutMethod put = new PutMethod("http://localhost:9000/customerservice/customers"); // RequestEntity , RequestEntity entity = new FileRequestEntity(input, "text/xml; charset=ISO-8859-1"); // put.setRequestEntity(entity); // HttpClient HttpClient httpclient = new HttpClient(); try { // int result = httpclient.executeMethod(put); System.out.println("Response status code: " + result); System.out.println("Response body: "); System.out.println(put.getResponseBodyAsString()); } finally { // Release current connection to the connection pool once you are // done put.releaseConnection(); }
    実験1では、URIREESOver類の役割を簡単に説明します。
    ファイル、リソースまたはURLを解析します。
    実験1では、CachedOutputStream類の役割は何ですか?
    取得して出力ストリームを処理する
    ジェームズ文書5.1.Uniform Interface Costrationの5つの目標を翻訳します。
  • everry resource is identified by a URI;(各リソースは1つのURLに対応)
  • a client interacts with the reource via HTTP requests and reponses using a fixed set of HTTP methods;(お客様が一連のHTTPを使用する方法は、HTTP要求と応答によってリソースと対話する)
  • one or more representations can be returned and are identified by media types;(1つまたは複数の陳述は、伝播媒体によって返され、識別されることができる)and
  • the contens of which can link to further resource.(これらの陳述された内容はより遠いリソースに接続できる)
  • 実験2における公的文書5.2に言及されたUriBuider類の役割を簡単に述べる。
    URI building using UriBuider and UriTemplate to safely build URIs翻訳:安全にURLが発生します。
    実験3の公式文書を読んで、自分の言語(中国語)でMotivation for Reactive Cient Extensionを述べます。
    一人のユーザーが同時に複数のサービスを申請するなら、各サービスに一回申請して結果を得ることができます。でも、これは面倒くさいです。ですから、拡張なしのカスタマーサービスを利用します。お客様は一回だけ申し込めばいいです。
    (!)作業に含まれる実行可能な実験プログラムを提供します。
    ……
    実験4の公式文書を読んで、なぜJavaはウェブサービスを書いていますか?通常このようなインターフェースは独立したJavaファイルに置かなければならない。
    もっと柔軟で、メンテナンスしやすいためかもしれません。
    JAXRESClient Factory類の役割は何ですか?
    JAXRESClient Factory工場類を通じてServiceオブジェクトを作成することができます。
    透明エージェントの役割を簡単に説明する。
    透明エージェントとは、クライアントがプロキシの存在を知る必要がないという意味で、リクェストフィルムを改編し、実際のIPを転送します。ユーザAおよびユーザBは、行動管理装置が透明なエージェントとして機能することを知らない。ユーザAまたはユーザBがサーバAまたはサーバBに要求を提出すると、透明なエージェント装置は、自身のポリシーに従ってブロックし、ユーザAまたはBの報文を修正し、実際の要求側としてサービスAまたはBに要求を送信する。透明エージェントは、自身の設定に従って、許可されたメッセージをユーザAまたはBに返信し、上述のように、透明エージェント設定がサーバBへのアクセスを許可していない場合、ユーザAまたはユーザBはサーバBのデータを取得しない。
    参考資料:順方向プロキシ、逆方向プロキシ、透明プロキシ