创建一个从数据源获取指令(步骤)并自动执行一些 HC(http://hc.apache.org Apache Http 客户端)操作的类。
希望能够执行 HTTP post、get 和直接(如向 Web 服务器发送 JSON 或 XML/soap 消息)调用。
对何时使用 BasicHttpEntityEnclosingRequest 与 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 规范明确定义了只有POST
和PUT
方法可以封装一个请求内容体。使用 GET
或 HEAD
等其他方法来封装请求主体是否合法尚有争议。
HttpCore 遵循 HTTP 规范的严格解释,将常规请求表示为 HttpRequest
,它不提供设置内容主体的方法。对于 PUT
和 POST
等方法,它提供扩展的 HttpEntityEnclosingRequest
以及用于请求实体操作的额外方法。
关于java apache HC BasicHttpEntityEnclosingRequest 与 BasicHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419268/