`
wangchao_17915566
  • 浏览: 169902 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

httpclient请求php

阅读更多

今天需要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

分享到:
评论
1 楼 sunzhenya 2013-04-19  
   

相关推荐

    php中http请求封装HttpClient精华中的经典代码

    总结起来,HttpClient的封装是PHP开发中的一个实用技巧,它提高了代码的可读性和可维护性,减少了重复的网络请求代码。理解并熟练运用HttpClient的封装,可以帮助我们在实际项目中更高效地处理HTTP通信。通过学习和...

    HttpClient.class.php

    `HttpClient.class.php` 是一个PHP类文件,专门用于模拟HTTP的GET和POST请求。在Web开发中,有时候我们需要从远程服务器获取数据或者向其发送数据,而不能仅依赖浏览器进行交互。`HttpClient` 类就提供了这样的功能...

    HttpClient.php

    HttpClient.class.php 文件是一个基于 PHP 的 HTTP 客户端类,用于模拟 HTTP 的 GET 和 POST 请求。在 Web 开发中,这种功能通常用于自动化测试、数据抓取或者与远程 API 进行交互。HttpClient 类提供了简单易用的...

    HttpClient 获取数据

    HttpClient是PHP中用于执行HTTP请求的一个重要工具,它允许开发者发送HTTP请求并接收响应,从而实现与Web服务器的通信。这个库主要用于从远程服务器获取数据,例如JSON、XML或者其他格式的信息。在本项目中,我们...

    httpclient手册

    8. **异步请求**:HttpClient 4.4支持异步请求,允许在不阻塞主线程的情况下发送请求。了解如何使用`FutureCallback`和`AsyncExecCallback`处理异步响应。 9. **身份验证与安全性**:学习如何处理基本认证、摘要...

    用HttpClient类实现查询申通快递的功能

    在`index.php`页面中,首先引入`HttpClient.class.php`文件,并创建`HttpClient`实例。设置必要的参数,如目标服务器地址、端口等。例如: ```php session_start(); require './HttpClient.class.php'; $request = ...

    jsp 中HttpClient中的POST方法实例详解.docx

    本文档主要介绍了如何在JSP中使用HttpClient发起POST请求,包括POST方法的基本概念、使用步骤以及具体实例。这对于理解如何通过HttpClient在JSP中发送POST请求非常有帮助。 #### 二、POST方法的概念 POST方法是一种...

    httpclient:PHP Http 客户端

    require_once ( 'httpclient.php' ); $ http = new HttpClient ( "http://mydomain.com" ); $ http -> get ( "/info.php" ); echo $ http -> getBody (); // Just print the response body 也可以这样写: <?...

    android HttpClient 上传图片

    通过`HttpPost`构造函数指定服务器的URL,这里是示例中的`upload.php`文件,通常用于处理上传请求的后端脚本。 #### 5. 创建并设置文件实体 ```java File file = new File("c:/TRASH/zaba_1.jpg"); FileEntity ...

    轻量级C++实现的httpserver和httpclient

    2. 支持CGI(通用网关接口):允许执行服务器端脚本,如Perl或PHP,以动态生成内容。 3. 自定义处理函数:开发者可以注册回调函数,对特定的HTTP请求进行自定义处理。 4. 支持HTTPS:通过SSL/TLS加密,提供安全的...

    HttpClient 4.0的post()方法4个关键“头信息”设置

    通过HttpClient,开发者可以轻松地发送HTTP请求并接收响应结果,支持GET、POST等多种请求方式。HttpClient 4.0版本在功能性和稳定性方面都有了很大的提升,是广泛使用的版本之一。 ### 四个关键“头信息”的设置 ...

    Android HttpClient GET或者POST请求基本使用方法

    4. **执行请求**:创建一个HttpClient实例,然后调用其`execute()`方法执行GET请求: ```java HttpClient httpClient = new DefaultHttpClient(); HttpResponse response = httpClient.execute(getMethod); ``` ...

    用httpclient写的登录开心网

    通过分析这个文件,你可以更深入地理解如何实际操作HttpClient进行网络请求和登录过程。 需要注意的是,模拟登录可能会受到网站反爬策略的限制,如验证码、滑动验证、设备指纹识别等。在实际应用中,应遵守网站的...

    http.class.php

    《HttpClient.class.php:高效HTTP请求处理的神器》 在当今的互联网时代,HTTP协议作为万维网应用的基础,是我们进行网络通信的重要手段。一个成熟、易用且高效的HTTP类库对于开发者来说至关重要,它能够帮助我们...

    使用java请求json接口数据

    在Java中,我们可以使用`java.net.URL`、`java.net.HttpURLConnection`或者第三方库如Apache HttpClient、OkHttp来实现这些请求。 `HttpServletRquest`类在描述中被提及,它是Java Servlet API的一部分,主要用于...

    PHP封装的HttpClient类用法实例

    在这篇文章中,介绍了一个封装好的HttpClient类,这个类能够支持GET、POST等HTTP请求,同时也支持Cookie和Session的功能,大大简化了日常开发工作中对HTTP请求的处理。 首先,我们来了解一下HttpClient类。这个类...

    http类库:基于php curl库封装的http类库

    在PHP开发中,HTTP通信是不可或缺的一部分,而`php-httplib`是一个为开发者提供便利的工具,它基于PHP的cURL库进行了封装,旨在简化HTTP请求操作,提高开发效率。下面将详细介绍这个类库的核心功能、使用方法以及其...

    php实现httpclient类示例

    标题“php实现httpclient类示例”和描述“主要介绍了php实现httpclient类示例,需要的朋友可以参考下”指明了本文的重点在于向PHP开发者介绍如何在PHP中创建一个HTTP客户端类,从而方便地发送HTTP请求并处理响应。...

Global site tag (gtag.js) - Google Analytics