今天需要post请求并且得到php返回的xml数据
这里我利用dom4j,因为返回的数据我需要组成xml
public class DanjiudianchakanTag extends OrderBaseTag{
@Override
public Document dataToXml() {
String html="";
String st=request.getParameter("st");
String et=request.getParameter("et");
String PropertyID=request.getParameter("PropertyID");
String str="http://192.168.10.218/search/singleHotel.php?wc=000&hotelname="+PropertyID+"&indate="+st+"&outdate="+et;
System.out.println(str);
Document doc = Dom4jHelp.CreateDocument();
response.setContentType("text/html;charset=utf-8");
//利用HttpClient进行请求
HttpClient httpClient = new HttpClient();
GetMethod getMethod = new GetMethod(str);
getMethod.addRequestHeader("Content","text/html,charset=utf-8");
try{
int statusCode = httpClient.executeMethod(getMethod);
if(statusCode!=HttpStatus.SC_OK){
System.err.println("Method failed: "+ getMethod.getStatusLine());
}
// 读取内容
byte[] responseBody = getMethod.getResponseBody();
// 处理内容
html = new String(responseBody);
//返回的信息
System.out.println(html);
SAXReader saxReader = new SAXReader();
//转化为doc对象
doc = saxReader.read(new ByteArrayInputStream(html.getBytes()));
}
catch(Exception e){
System.err.println("页面无法访问");
}
getMethod.releaseConnection();
try {
MessageToXML.SystemWriter(doc);
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
}
接下来:
利用Httpclient进行post 提交数据。
首先建立Myhttpclient
public class MyHttpClient {
public String requestPHP(String url,String wc,String order)throws IOException {
HttpClient client = new HttpClient();
//服务器地址
client.getHostConfiguration().setHost("192.168.10.218", 80, "http");
//post 参数
HttpMethod method = getPostMethod(url,wc,order);//使用POST方式提交数据
method.addRequestHeader("Content","text/html,charset=gb2312");
// HttpMethod method = getGetMethod(url,wc,order);//使用get方式提交数据
client.executeMethod(method);
System.out.println("----------"+method.getStatusLine());
//打印结果页面
String response = new String(method.getResponseBodyAsString().getBytes("gb2312"));
//打印返回的信息
System.out.println("---------"+response);
method.releaseConnection();
return response;
}
/** *//**
* 使用GET方式提交数据
*
*/
private static HttpMethod getGetMethod(){
return new GetMethod("/search/hotelorder.php");
}
private static HttpMethod getGetMethod(String url,String wc,String order){
return new GetMethod("/search/hotelorder.php?wc=000&order="+order);
}
/** *//**
* 使用POST方式提交数据
* @return
*/
private static HttpMethod getPostMethod(){
PostMethod post = new PostMethod("/search/hotelorder.php");
NameValuePair simcard = new NameValuePair("simcard","1330227");
post.setRequestBody(new NameValuePair[] { simcard});
return post;
}
private static HttpMethod getPostMethod(String url,String wc,String order){
PostMethod post = new PostMethod(url);
NameValuePair pwc = new NameValuePair("wc",wc);
NameValuePair porder = new NameValuePair("order",order);
post.setRequestBody(new NameValuePair[] {pwc,porder});
return post;
}
}
如何调用:
String url = "/search/hotelorder.php";
String wc = "000";
MyHttpClient mc = new MyHttpClient();
try {
String rphp = mc.requestPHP(url,wc,order);
doc = DocumentHelper.parseText(rphp);
Element r = doc.getRootElement();
Dom4jHelp.getNextItem(r,"Internet",Internet);//宽带
Dom4jHelp.getNextItem(r,"BedType",BedType);//床型
} catch (Exception e1) {
e1.printStackTrace();
}
这样就可以通过上MyHttpClient进行post提交。
主要jar:commons-httpclient-3.1.jar
分享到:
相关推荐
总结起来,HttpClient的封装是PHP开发中的一个实用技巧,它提高了代码的可读性和可维护性,减少了重复的网络请求代码。理解并熟练运用HttpClient的封装,可以帮助我们在实际项目中更高效地处理HTTP通信。通过学习和...
`HttpClient.class.php` 是一个PHP类文件,专门用于模拟HTTP的GET和POST请求。在Web开发中,有时候我们需要从远程服务器获取数据或者向其发送数据,而不能仅依赖浏览器进行交互。`HttpClient` 类就提供了这样的功能...
HttpClient.class.php 文件是一个基于 PHP 的 HTTP 客户端类,用于模拟 HTTP 的 GET 和 POST 请求。在 Web 开发中,这种功能通常用于自动化测试、数据抓取或者与远程 API 进行交互。HttpClient 类提供了简单易用的...
HttpClient是PHP中用于执行HTTP请求的一个重要工具,它允许开发者发送HTTP请求并接收响应,从而实现与Web服务器的通信。这个库主要用于从远程服务器获取数据,例如JSON、XML或者其他格式的信息。在本项目中,我们...
8. **异步请求**:HttpClient 4.4支持异步请求,允许在不阻塞主线程的情况下发送请求。了解如何使用`FutureCallback`和`AsyncExecCallback`处理异步响应。 9. **身份验证与安全性**:学习如何处理基本认证、摘要...
在`index.php`页面中,首先引入`HttpClient.class.php`文件,并创建`HttpClient`实例。设置必要的参数,如目标服务器地址、端口等。例如: ```php session_start(); require './HttpClient.class.php'; $request = ...
本文档主要介绍了如何在JSP中使用HttpClient发起POST请求,包括POST方法的基本概念、使用步骤以及具体实例。这对于理解如何通过HttpClient在JSP中发送POST请求非常有帮助。 #### 二、POST方法的概念 POST方法是一种...
require_once ( 'httpclient.php' ); $ http = new HttpClient ( "http://mydomain.com" ); $ http -> get ( "/info.php" ); echo $ http -> getBody (); // Just print the response body 也可以这样写: <?...
通过`HttpPost`构造函数指定服务器的URL,这里是示例中的`upload.php`文件,通常用于处理上传请求的后端脚本。 #### 5. 创建并设置文件实体 ```java File file = new File("c:/TRASH/zaba_1.jpg"); FileEntity ...
2. 支持CGI(通用网关接口):允许执行服务器端脚本,如Perl或PHP,以动态生成内容。 3. 自定义处理函数:开发者可以注册回调函数,对特定的HTTP请求进行自定义处理。 4. 支持HTTPS:通过SSL/TLS加密,提供安全的...
通过HttpClient,开发者可以轻松地发送HTTP请求并接收响应结果,支持GET、POST等多种请求方式。HttpClient 4.0版本在功能性和稳定性方面都有了很大的提升,是广泛使用的版本之一。 ### 四个关键“头信息”的设置 ...
4. **执行请求**:创建一个HttpClient实例,然后调用其`execute()`方法执行GET请求: ```java HttpClient httpClient = new DefaultHttpClient(); HttpResponse response = httpClient.execute(getMethod); ``` ...
通过分析这个文件,你可以更深入地理解如何实际操作HttpClient进行网络请求和登录过程。 需要注意的是,模拟登录可能会受到网站反爬策略的限制,如验证码、滑动验证、设备指纹识别等。在实际应用中,应遵守网站的...
《HttpClient.class.php:高效HTTP请求处理的神器》 在当今的互联网时代,HTTP协议作为万维网应用的基础,是我们进行网络通信的重要手段。一个成熟、易用且高效的HTTP类库对于开发者来说至关重要,它能够帮助我们...
在Java中,我们可以使用`java.net.URL`、`java.net.HttpURLConnection`或者第三方库如Apache HttpClient、OkHttp来实现这些请求。 `HttpServletRquest`类在描述中被提及,它是Java Servlet API的一部分,主要用于...
在这篇文章中,介绍了一个封装好的HttpClient类,这个类能够支持GET、POST等HTTP请求,同时也支持Cookie和Session的功能,大大简化了日常开发工作中对HTTP请求的处理。 首先,我们来了解一下HttpClient类。这个类...
在PHP开发中,HTTP通信是不可或缺的一部分,而`php-httplib`是一个为开发者提供便利的工具,它基于PHP的cURL库进行了封装,旨在简化HTTP请求操作,提高开发效率。下面将详细介绍这个类库的核心功能、使用方法以及其...
标题“php实现httpclient类示例”和描述“主要介绍了php实现httpclient类示例,需要的朋友可以参考下”指明了本文的重点在于向PHP开发者介绍如何在PHP中创建一个HTTP客户端类,从而方便地发送HTTP请求并处理响应。...