当前位置: 首页 > 知识库问答 >
问题:

Java apache HC BasicHttpEntityEnclosingRequest vs BasicHttpRequest

卢德惠
2023-03-14

创建一个从数据源获取指令(步骤)的类,并自动执行一些操作(http://hc.apache.orgApache Http客户端)操作。

希望能够执行HTTP post、get和direct(比如向web服务器发送JSON或XML/soap消息)调用。

困惑于何时使用BasicHttpEntityEnclosingRequest与BasicHttpRequest什么是封装?现在,当我想要提交时,我有初始化上下文、提供参数值、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

共有1个答案

端木令
2023-03-14

HTTP规范明确定义只有POSTPUT可以包含请求内容体的方法。其他方法,如GETHEAD封装请求主体是否合法,还有待讨论。

HttpCore遵循对HTTP规范的严格解释,并将常规请求表示为HttpRequest,它不提供设置内容正文的方法。对于PUTPOST等方法,它提供了扩展的HttpEntityEnclosingRequest以及用于请求实体操作的额外方法。

 类似资料:

相关问答

相关文章

相关阅读