工具类 HttpClientUtil
public class HttpClientUtil {
public static String sendRequest(URL url) throws IOException {
String result = "";
try {
PostMethod method = new PostMethod(url.toString());
method.addRequestHeader("Cache-Control",
RequestConstants.REQUEST_CACHE_CONTROL);
method.addRequestHeader("SOAPAction",
RequestConstants.REQUEST_SOAP_ACTION);
method.addRequestHeader("Cookie", RequestConstants.REQUEST_COOKIE);
method.addRequestHeader("Host", url.getHost());
method.addRequestHeader("Accept", RequestConstants.REQUEST_ACCEPT);
method.setRequestEntity(null);
HttpClient httpClient = new HttpClient();
int status = httpClient.executeMethod(method);
if (method.getResponseContentLength() < 0) {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
byte[] data = new byte[8192];
int rsize = 0;
int totalrsize = 0;
InputStream in = method.getResponseBodyAsStream();
do {
rsize = in.read(data);
if (rsize > 0) {
totalrsize += rsize;
bout.write(data, 0, rsize);
}
} while (rsize > 0);
result = new String(bout.toByteArray());
} else {
byte data[] = method.getResponseBody();
result = new String(data, "utf-8");
}
if (status != 200) {
log.info("请求错误:[url:" + url.toString() + ",responseCode:"
+ status + "]");
return null;
}
} catch (Exception e) {
log.info("http请求异常!");
}
return result;
}
public interface RequestConstants {
public static final String REQUEST_CACHE_CONTROL = "no-cache";
public static final String REQUEST_SOAP_ACTION = "\"\"";
public static final String REQUEST_COOKIE = "JSESSIONID=A09JHGHKHU68624309UTY84932;";
public static final String REQUEST_ACCEPT = "application/soap+xml, application/dime, multipart/related, text/*";
}
action 类
public String listTicketsByCondition() throws IOException {
String url = "http://192.168.3.205:8080/GenLotWBOS/queryTickInf.action";
String messageid = this.getRequest().getParameter("messageid");
String cpserial = this.getRequest().getParameter("cpserial");
String tacketid = this.getRequest().getParameter("tacketid");
PostHelper p = new PostHelper(url);
if(StringUtils.hasLength(messageid)){
p.addParameter("messageid", messageid);
}
if(StringUtils.hasLength(cpserial)){
p.addParameter("cpserial", cpserial);
}
if(StringUtils.hasLength(tacketid)){
p.addParameter("orderno", tacketid);
}
String jsonMsg = p.post(url);
this.getResponse().setCharacterEncoding("UTF-8");
this.getResponse().getWriter().write(jsonMsg);
this.getResponse().getWriter().flush();
return null;
}
分享到:
相关推荐
通过理解上述步骤和项目结构,你可以有效地构建和发送POST请求,与远程服务器进行交互。对于"post-demo"项目,你可以通过调试客户端应用,检查发送的数据是否正确,以及服务端接口是否正确处理了这些请求,以确保...
保持良好的代码结构,例如使用Builder模式来构建复杂的HttpClient请求,工厂模式来创建解析器,以及单例模式来管理HttpClient实例。遵循SOLID原则,确保代码的可维护性和扩展性。 通过上述步骤,我们可以构建一个...
现在,我们将深入探讨如何使用`httpclient`进行跨域请求,并结合`fastjson`处理数据。 首先,理解跨域请求的概念至关重要。由于同源策略的限制,JavaScript通常只能访问与当前页面相同协议、域名和端口的资源。若要...
此外,HttpClient还具有很高的灵活性和可扩展性,能够满足各种复杂的网络请求需求。 #### 三、调用WebService的基本步骤 1. **构建SOAP消息**:WebService通常使用SOAP协议进行通信。因此,首先需要构造一个符合...
HttpClient适用于单次请求,但如果需要进行大量的并发请求,可能需要考虑使用更高级的异步模型,如Apache HttpClient的AsyncClient。 总之,HttpClient是Java开发中处理HTTP请求的强大工具,它提供了一套完整的API...
在远程接口调用中,HttpClient允许我们构建自定义的请求并获取响应,非常适用于API测试和集成。 首先,我们需要添加HttpClient依赖到我们的项目中。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml ...
在这个例子中,我们使用HttpClient来调用远程接口,从电信公司的网站获取可用手机号码的数据,并将其存储到本地文件系统。以下是对这个过程的详细解释: 1. **HttpClient的引入与配置**: 首先,我们需要在项目中...
本章将通过apache httpclient实现远程访问。说得简单就是直接通过spring requestmapping即请求映射url访问远程服务。 1. 远程访问流程 1) 服务器在控制器定义远程访问请求映射路径 2) 客户端通过apache httpclient的...
Apache Commons HttpClient 是一个Java库,专门用于执行HTTP和HTTPS请求,包括远程文件的下载。这个库为开发者提供了高级HTTP客户端功能,比如支持多种HTTP方法(GET、POST等)、处理Cookies、管理连接池以及进行...
在实际项目中,HttpClient 库常用于 IoT(物联网)场景,如远程控制、数据采集或设备状态报告等。结合 Arduino 的传感器和其他硬件,你可以构建各种智能系统,如智能家居、环境监测等。理解并熟练使用 HttpClient 库...
HttpClient是Apache基金会开发的一个Java库,用于执行HTTP请求。它为构建复杂的、高性能的客户端应用程序...在实际项目中,理解并熟练使用HttpClient的各种特性,能够帮助我们更高效、更安全地与远程HTTP服务进行交互。
本教程将聚焦于使用`HttpClient`库进行GET请求,这是获取远程资源最常见的方式。请注意,本教程不涉及POST请求,POST主要用于向服务器提交数据。 ## 1. Android HttpClient介绍 `HttpClient`是Apache HTTP组件的一...
在PHP开发中,HTTP请求的处理是至关重要的,特别是在与远程服务器进行数据交互时。HttpClient是一种常见的工具,用于封装HTTP请求,使得开发者可以方便地发送GET、POST等不同类型的请求。下面我们将深入探讨PHP中...
4. **执行请求**:通过HttpClient的execute方法发送请求,得到CloseableHttpResponse对象。 5. **处理响应**:检查状态码,获取响应实体。如果是文件下载,可以使用InputStream和OutputStream将响应内容写入本地...
请求完成后,记得释放HTTPClient资源,防止内存泄漏: ```cpp http.end(); ``` 9. **应用示例**: ESP8266HTTPClient常用于物联网项目,如通过HTTP API控制智能家居设备、从云服务器获取配置信息、或者将...
此外,HTTPClient库还支持异步请求,通过使用`Future<HttpResponse>`对象,可以在执行请求后立即继续执行其他代码,而无需等待响应返回。这对于需要处理大量并发请求的场景特别有用。 总之,HTTPClient是一个强大且...
HttpClient提供了丰富的API,可以定制请求头、设置请求体、处理响应等。同时,它也支持多线程和池化的HTTP连接,以优化性能和资源利用。 然而,需要注意的是,虽然HttpClient 3.x系列是一个成熟且广泛使用的库,但...
- **下载文件**:通过HttpClient下载远程文件,处理进度和断点续传。 通过HttpClient API帮助文档,开发者可以深入了解HttpClient的使用细节,提高HTTP请求处理的效率和可靠性。无论是进行Web服务调用,还是构建...
2. **连接管理**:HttpClient允许开发者精细控制连接池,包括设置最大连接数、超时时间等,这对于处理大量并发请求非常有用。 3. **重试和恢复策略**:HttpClient提供了自动重试机制,当遇到网络临时问题时,它可以...