`
yufenfei
  • 浏览: 801139 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CXF之八(httpClient模拟客户端测试)

 
阅读更多

       CXF服务器端搭建好了以后,我们应该怎么测试,客户端测试方式很多种,在这里使用HttpClient进行模拟客户端请求测试。由于搭建的CXF支持Rest模式,配置的也都是POST请求方式,所以只列出了HttpClient的POST请求方式的测试类。

     

       第一步:写一个通用的测试入口类

public class ExpHttpClient {
	/**本地测试*/
    private final static String HTTP_URL="http://localhost:8080/demo/webservice/"; 
	
	/** 生产测试*/
   //private final static String HTTP_URL="http://XXXX:8080/demo/webservice/"; 
    
    /**连接超时时间*/
    private final static int CONN_TIMEOUT=5000;
    /**请求超时时间*/
    private final static int REQUEST_TIMEOUT=5000;
    
    private final static String RETURN_FOMATE="json";//支持json、xml
    
    /**
     * 请求服务器入口
   * 创 建 人:  XX
     * 创建时间:  2012-11-7 下午03:39:55  
     * @param methodName 方法名
     * @param map  上送输入参数集合
     * @return
     * @see [类、类#方法、类#成员]
     */
	public String doPost(String methodName,Map<String,String> map){
		String url = HTTP_URL+methodName;
		
		String result =null;
	    HttpClient httpClient = new HttpClient();
	    httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(CONN_TIMEOUT);  //连接超时 设置
		PostMethod postMethod = new PostMethod(url); 
		
        postMethod.setRequestBody(this.getPostParams(map));
        postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
        postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,REQUEST_TIMEOUT); //post请求超时 设置
     postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
		try {
                                              int statusCode = httpClient.executeMethod(postMethod);
			if (statusCode != HttpStatus.SC_OK){//如果请求返回的不是成功,则进行处理
				return new String(postMethod.getResponseBodyAsString()) ;
			}else{
			    result = new String(postMethod.getResponseBodyAsString());
			}
		} catch (HttpException e) { 
				System.out.println("Please check your provided http address!"); 
				e.printStackTrace(); 
				return e.getMessage();
		} catch (IOException e) {
			   e.printStackTrace(); 
			   return e.getMessage();
		}finally{
			postMethod.releaseConnection();
		}
		return result;
	}
	
	 private NameValuePair[] getPostParams(Map<String,String> map){
		    map.put("_type", RETURN_FOMATE);
	    	NameValuePair[] data =new NameValuePair[map.size()];
			Iterator<String> it=map.keySet().iterator();
			int i=0;
			while(it.hasNext()){
				String key = it.next();
				String value =map.get(key);
				data[i]=new NameValuePair(key,value);
				i++;
			}
			return data;
	    }
}

 第二步:单元测试类

  

public class TestExpGateway {

	private ExpHttpClient client=null;
	@Before
	public void setUp() throws Exception {
		client = new ExpHttpClient();
	}

	@Test
	public void testDosmsSend(){
		String methodName="smsGateway/doSmsSend";
		Map<String,String> map =new HashMap<String,String>();
		map.put("channelNo", "05");
		map.put("compId", "0");
		map.put("usePhone", "15100000000");
		 map.put("content", "消息一");
		String result=client.doPost(methodName, map);
		System.out.println(result);	
	}
}

 

需要的jar包如下

 

 

 

  • 大小: 10.2 KB
0
1
分享到:
评论

相关推荐

    apache-cxf-2.7.7以及cxf客户端所需要的jar包

    这个压缩包"apache-cxf-2.7.7以及cxf客户端所需要的jar包"包含了Apache CXF 2.7.7版本及其客户端运行所需的库文件。这些jar包对于创建、部署和消费Web服务至关重要,特别是对于使用命令行生成Web服务客户端的开发者...

    CXF实例源代码(客户端)

    6. **测试和调试**:CXF提供了丰富的测试工具,如CXF TestSupport和模拟服务功能,可以帮助开发者在不依赖真实服务的情况下测试客户端代码。 7. **性能优化**:对于生产环境,关注性能优化很重要。这可能涉及到缓存...

    cxf简单实例 服务端与客户端

    在这个“cxf简单实例 服务端与客户端”中,我们将探讨如何使用CXF来创建服务端和客户端应用。 服务端开发是Web服务的核心部分。在CXF中,服务端通常通过以下步骤建立: 1. 定义服务接口:首先,我们需要定义一个...

    CXF和Spring结合的客户端例子

    这个代码例子是为了调用CXF提供的WS服务,所以先要下载“CXF和Spring结合的例子”,并将服务器(tomcat)运行起来,在利用本客户端测试,本客户端是根据服务端发布的WSDL文件,用wsdl2java直接生成java代码,加入到...

    CXF入门 -- 简单客户端示例

    CXF入门教程(2) -- 简单客户端示例文章附带代码,为使用方便,将service和client代码合并到一个工程中。原文地址http://blog.csdn.net/neareast/article/details/7717568

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

    springboot整合CXF发布webservice和客户端调用

    - 对于客户端调用,可以使用CXF的`JaxWsProxyFactoryBean`创建服务代理对象,然后调用其方法进行服务调用。 4. **项目结构** - `.classpath`和`.project`是Eclipse IDE的项目配置文件。 - `pom.xml`是Maven的...

    Java cxf开发webservice,分别有客户端和服务端

    1.使用Java 2.用cxf开发webservice ...客户端也需要接口类文件和pojo,和cxf客户端xml 但是没有接口的实现类,就是为了去服务端来调用的。 具体有不懂可以问我 给我发消息, 劳烦评价 ,请大家支持原创 禁止转载

    Springboot整合CXF发布Web service和客户端调用(用户和密码验证)

    在IT行业中,Spring Boot是一个非常流行的...4. 使用CXF生成客户端代码。 5. 在客户端应用中创建代理对象并调用服务。 通过这种方式,你可以构建安全、可靠的Web服务,并在Spring Boot环境中轻松地进行客户端调用。

    CXF客户端测试需要的最少JAR包

    在标题和描述中提到的“CXF客户端测试需要的最少JAR包”,是指能够支持CXF客户端功能运行的基础依赖集合。 通常,一个基础的CXF客户端测试环境可能包括以下关键组件: 1. **cxf-rt-frontend-jaxws**:这是CXF的...

    cxf-spring 服务端and客户端

    【标题】"cxf-spring 服务端and客户端"揭示了这个项目是关于Apache CXF框架与Spring框架的集成,用于构建服务端和客户端应用程序。Apache CXF是一个开源的Java框架,它允许开发者创建和消费Web服务,而Spring框架则...

    cxf webservice简单例子 服务端 客户端

    本教程将基于CXF构建一个简单的Web服务,包括服务端和客户端的实现。我们将使用CXF提供的工具和服务接口来创建服务,然后通过客户端调用来验证服务的正确性。 ### 1. CXF简介 CXF是Apache软件基金会的一个项目,它...

    idea + spring4.3.7.RELEASE+cxf3.1.0整合+客户端调用

    本教程将围绕"idea + spring4.3.7.RELEASE + cxf3.1.0"的整合进行详细讲解,旨在帮助开发者理解如何在IDEA(IntelliJ IDEA)环境中搭建一个基于Maven的Spring MVC项目,并结合Apache CXF实现Web服务的消费与提供。...

    CXF webservice 动态地址客户端相关代码和jar包

    可以利用Mock服务或工具模拟不同服务地址的行为,便于调试和测试。 总之,CXF Webservice动态地址客户端允许应用程序在不修改代码的情况下适应服务位置的变化,提高了系统的灵活性和可维护性。正确理解和使用这些...

    cxf 开发webservice客户端

    本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF简介 CXF全称CXF CXF (Continued eXtensible Framework),它是一个Java框架,提供了创建和消费Web服务的能力。CXF支持WS-*...

    CXF开发的服务端及客户端

    【CXF开发的服务端及客户端】是一个基于Apache CXF和Spring框架构建的项目,主要功能是实现文件的上传和下载,以及支持视频音频的传输。这个项目为学习者提供了实战经验,帮助理解如何在实际应用中运用CXF作为服务端...

    CXF 一个完整的webService(整合客户端和服务端)

    - 测试:使用CXF的内置测试框架,可以对服务端和客户端进行单元测试和集成测试。 - 日志和调试:CXF支持日志记录和调试工具,帮助开发者定位问题。 **5. RESTful服务与CXF** 除了传统的SOAP服务,CXF也支持RESTful...

    CXF整合spring的客户端和服务端

    导入Eclipse或MyEclipse后,只需几分钟即可启动并测试服务和客户端。项目的价值在于其快速启动和易于理解,对于初学者来说是一个很好的学习资源。 5. **优势** - **灵活性**:Spring和CXF的结合提供了高度的灵活...

    cxf+spring开发webservice客户端与服务端实例

    4. 测试:编写测试用例,验证服务端和客户端的正常交互。 六、注意事项 1. 异常处理:在服务端和客户端都要进行适当的异常处理,确保服务的健壮性。 2. 安全性:考虑服务的安全性,如使用HTTPS,认证和授权等。 3. ...

Global site tag (gtag.js) - Google Analytics