文档章节

Java HttpClient 4.3.1 访问ASP.NET WebService

IceRainYWC
 IceRainYWC
发布于 2013/10/12 14:57
字数 312
阅读 1779
收藏 5

首先下载HttpClient 4.3.1的jar包,下载地址:http://mirrors.hust.edu.cn/apache//httpcomponents/httpclient/binary/httpcomponents-client-4.3.1-bin.zip

依赖Jar包文件:commons-codec-1.6.jar,httpclient-4.3.1.jar,httpcore-4.3.jar,另外,需要额外加入log4j-1.2.16.jar及commons-logging-1.1.3.jar包。

示例代码如下:

package com.project.ws;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;


public class WSClient {
	public static final String WSDLURL = "http://127.0.0.1:8080/Test.asmx?wsdl";
	public static void main(String[] args){
		HttpClient client = HttpClients.createDefault();
		String reqSoapData = buildReqSoapData();
		HttpPost post = new HttpPost(WSDLURL);
		try {
			HttpEntity re = new StringEntity(reqSoapData,"UTF-8");
			post.setHeader("Content-Type","application/soap+xml; charset=UTF-8");
			//post.setHeader("Content-Length", String.valueOf(reqSoapData.length()));
			post.setEntity(re);			
			HttpResponse response = client.execute(post);
			System.out.println("请求服务的Soap文本:"+EntityUtils.toString(post.getEntity()));
			System.out.println("请求服务结果状态:"+response.getStatusLine());
			System.out.println("请求服务返回XML文本:"+EntityUtils.toString(response.getEntity()));			
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	/**
	 * 生成请求服务的Soap XML字符串
	 * @return String
	 */
	public static String buildReqSoapData(){
		String soapData = "";
		soapData += "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
		"<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"  +
		  "<soap12:Body>" +
		   " <getStudentInfo xmlns=\"http://tempuri.org/\">" +
		     " <strKey>person</strKey>" +
		    "  <strwhere>name='花无影'</strwhere>" +
		    "</getStudentInfo>" +
		 " </soap12:Body>" +
		"</soap12:Envelope>" ;
		return soapData;
	}
}

 说明:其中生成请求的Soap文本中,

<getStudentInfo xmlns="http://tempuri.org/">

<strKey>person</strKey>

<strwhere>name='花无影'</strwhere>

</getStudentInfo>,

getStudentInfo为方法名称,strKey及strwhere为参数名称,对应的值为参数的值。

 

© 著作权归作者所有

IceRainYWC
粉丝 13
博文 111
码字总数 49297
作品 0
石家庄
程序员
私信 提问
HttpClient在多线程环境下踩坑总结

HttpClient在多线程环境下踩坑总结 问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状态。 ...

优惠券发放
03/28
0
0
紧急求助!关于手机客户端用httpclient访问服务端webservice怎么维持会话session

目前在做一个php的webservice供外部调用,客户端要先通过oauth的验证,然后我有一些信息是保存在session中的,现在碰到一个问题,就是i在java中发起测试请求的时候,在两次请求中没法维持会话...

yusaint
2011/11/23
2.8K
2
Android 使用自带的HttpClient进行https请求出现403的解决过程记录

出现的过程 最近在用程序模拟一个web站的https登录,然后进行一些后续操作的小玩意。先使用java程序写测试代码,测试通过移植到android。 java基于httpclient-4.3.1.jar开发。 android端使用...

atearsan
2014/03/05
6.6K
1
httpclient4.4 出现NoHttpResponseException的异常解决

httpclient4.4简单初始化httpclient的方式: 使用连接池初始化httpclient的方式: 但在测试过程中发现,有时候出现如下的异常,但重试一次就没有问题: 网上查了相关的报错信息,找到官网上的...

一路向北的兔斯基
2015/07/30
21.8K
2
Android 浅谈HttpClient工具类

在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过它的...

Jonson
2013/07/25
706
3

没有更多内容

加载失败,请刷新页面

加载更多

DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
4分钟前
1
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
8
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
7
0
作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
30
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部