1

データ ソースから指示 (手順) を受け取り、いくつかの HC ( http://hc.apache.org Apache Http Client ) アクションを自動化するクラスを作成します。

HTTP の post、get、direct (JSON または XML/soap メッセージを Web サーバーに送信するなど) 呼び出しを実行できるようにしたい。

BasicHttpEntityEnclosureRequest と BasicHttpReques をいつ使用するかについて混乱しています。囲みは何ですか? 現在、コンテキストを初期化し、送信したいときにパラメーター値、URL、メソッドなどを提供する手順があります。これは私がやっていることです:

        HttpPost httpost = null;//todo correct method
        //HttpEntity resp = this.httpclient.e

        HttpEntityEnclosingRequest reqEntity1 = null;//use this
        HttpRequest reqEntity = new BasicHttpRequest(method, urls, httpVer );//or this?
        URL url = new URL(urls);
        String hostNm = url.getHost();
        int port = url.getPort();
        String sche = url.getProtocol();
        logger.info("scheme/ proto :" + sche);
        HttpHost  httpHost = new HttpHost (hostNm, port, sche);
        response = this.httpclient.execute(httpHost, reqEntity, localContext);

質問 : どちらか一方を使用するか、または通常の HttpRequest を囲むために別の属性を使用しますか?

見る

http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/HttpRequest.html

http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/message/BasicHttpRequest.html

http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/HttpEntityEnclosingRequest.html

4

1 に答える 1

2

HTTP 仕様では、リクエストのコンテンツ ボディを囲むことができるメソッドとしてPOSTandのみを明確に定義しています。またはリクエストボディを同封するPUTなどの他の方法が合法であるかどうかは、議論の対象です。GETHEAD

HttpCore は、HTTP 仕様の厳密な解釈に従い、通常のリクエストを表しHttpRequest、コンテンツ ボディを設定するメソッドを提供しません。PUTやなどのメソッドについては、リクエスト エンティティ操作用のPOST拡張メソッドを提供します。HttpEntityEnclosingRequest

于 2013-08-25T15:45:57.373 に答える