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

使用httpclient发送SOAP请求

阅读更多
package com.cordyschina.apptoolkit.util.http;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;

public class Saml_Test {
	private static final String soapRequestData =
"		<SOAP:Envelope xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+"		<SOAP:Header>"
+"		<wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">"
+"			<wsse:UsernameToken xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">"
+"				<wsse:Username>administrator</wsse:Username>"
+"				<wsse:Password>cordys</wsse:Password>"
+"			</wsse:UsernameToken>"
+"		</wsse:Security>"
+"	</SOAP:Header>"
+"	<SOAP:Body>"
+"		<samlp:Request xmlns:samlp=\"urn:oasis:names:tc:SAML:1.0:protocol\" MajorVersion=\"1\" MinorVersion=\"1\">"
+"			<samlp:AuthenticationQuery>"
+"				<saml:Subject xmlns:saml=\"urn:oasis:names:tc:SAML:1.0:assertion\">"
+"					<saml:NameIdentifier Format=\"urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified\">administrator</saml:NameIdentifier>"
+"				</saml:Subject>"
+"			</samlp:AuthenticationQuery>"
+"		</samlp:Request>"
+"	</SOAP:Body>"
+"</SOAP:Envelope>";
	public static void main(String[] args) {
		try {
			System.out.println(soapRequestData);
			PostMethod postmethod = new PostMethod(
					"http://10.200.1.128/cordys/com.eibus.web.soap.Gateway.wcp");
			byte[] b = soapRequestData.getBytes("UTF-8");
			InputStream is = new ByteArrayInputStream(b, 0, b.length);
			RequestEntity re = new InputStreamRequestEntity(is, b.length,
					"application/xop+xml; charset=UTF-8; type=\"text/xml\"");
			postmethod.setRequestEntity(re);
			HttpClient httpClient = new HttpClient();
			int statusCode = httpClient.executeMethod(postmethod);
			System.out.println("statuscode=" + statusCode);
			String soapResponseData = postmethod.getResponseBodyAsString();
			System.out.println(soapResponseData);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    Java访问.Net Webservice 通过httpclient SOAP实现

    2. **配置HTTPClient**:接着,我们需要使用Apache的HTTPClient库来发送这个SOAP请求。首先,引入HTTPClient的相关依赖,确保项目中包含httpclient和httpcore的jar包。然后,创建HttpClient实例,设置相应的连接和...

    httpClient调用webservice接口

    1. **SOAP请求消息的构建**:在`accessService`方法中,通过`StringBuffer`来逐步构建SOAP请求消息,包括设置SOAP的命名空间、方法名以及参数等信息。 2. **HTTP请求的配置**:通过`PostMethod`对象来设置HTTP请求的...

    基于Servlet发送、接收SOAP消息的java源程序

    - 发送SOAP请求:Servlet可以使用`java.net.URLConnection`或Apache的 HttpClient库来构造和发送HTTP POST请求,其中请求体包含SOAP消息。 - 处理SOAP响应:接收到响应后,Servlet可以使用XML解析器解析响应体,...

    HttpClient 调用WebService示例

    4. **设置SOAP请求体**: 使用`StringEntity`或`HttpEntityEnclosingRequestBase`来设置SOAP请求体。这通常涉及到将SOAP XML转换为字符串并添加到请求中: ```java String soapRequestBody = ...

    java 调用webservice使用HttpClient和XFire两种方式

    调用Web Service时,我们可以通过HttpClient发送POST请求,携带SOAP消息体来完成调用。以下是一段简单的HttpClient调用Web Service的代码示例: ```java CloseableHttpClient httpClient = HttpClients.create...

    java 访问 wcf 示例(使用的HttpClient)

    3. **构建SOAP请求**: WCF服务通常使用SOAP协议,所以需要构建一个符合WSDL(Web Service Description Language)规范的SOAP请求XML。这包括SOAP Envelope、Header和Body。 4. **设置请求实体**: 对于HttpPost,...

    带有请求超时设置的soap jar包

    在这个修改过的jar包中,可能已经包含了这样的功能,即在发送SOAP请求前,允许用户设置一个自定义的超时值,避免因为长时间等待服务器响应而影响应用的性能。 `Test.java`文件可能是包含示例代码的测试类,演示如何...

    VB.NET/JAVA 采用SOAP 与Webservice发送/接收数据

    - Java中可以通过`java.net.HttpURLConnection`或者第三方库如Apache HttpClient来发送SOAP请求。 - 构建SOAP消息的方式与VB.NET类似,但需要注意字符串转义的不同,例如在Java中XML的双引号需要用`\"`来表示。 -...

    webservice 调用实例soap协议

    - 使用HTTP客户端库(如Apache HttpClient)发送SOAP请求。 - 接收HTTP响应,解析SOAP响应XML,提取业务数据。 - 可能还包括错误处理和日志记录。 了解这些基本概念后,开发者就能根据具体的业务需求,利用SOAP协议...

    httpClient官方实例

    `PostSOAP_java.htm`可能是关于如何使用HttpClient发送SOAP(简单对象访问协议)消息的例子,这对于调用Web服务至关重要。 10. **SSL/TLS支持**: HttpClient支持HTTPS协议,可以配置SSLContext和TrustManager以...

    httpClient调用wcf

    4. **处理响应**:发送请求后,HttpClient会返回一个`HttpResponse`对象,从中可以获取响应状态码、响应头和响应体。对于WCF服务,响应体通常是XML或JSON格式的数据,需要解析成Java对象。 5. **数据序列化和反序列...

    httpclient实现webservice客户端

    使用HttpClient,我们可以构建一个WebService客户端,向Web服务发送SOAP请求并接收响应。 下面是一段简单的示例代码,展示了如何使用HttpClient发送一个POST请求,模拟调用一个SOAP WebService: ```java import ...

    java socket 发送http请求webservice.

    此外,如果Web服务是基于SOAP协议的,请求和响应的格式会更加复杂,需要包含XML数据。 至于标签中的“工具”,在实际开发中,Java有许多库如Apache HttpClient、OkHttp等,可以简化HTTP请求的处理,提供更高级的...

    利用DOM4J解析SOAP的简单示例

    在实际应用中,解析SOAP消息通常结合网络请求,例如使用Apache HttpClient发送SOAP请求并接收响应,然后使用DOM4J解析响应内容。了解DOM4J库的其他功能,如XPath查询、命名空间处理等,可以帮助更高效地处理复杂SOAP...

    soap-tools:用于在 HTTP 正文中发送带有 SOAP 请求的原始 HTTP 请求的简单客户端

    在本文中,我们将深入探讨一个名为"soap-tools"的工具,它是一个简单的HTTP客户端,专为在HTTP正文中发送SOAP请求而设计。这个工具被称为"soapi-rawclient",它是用Java编程语言编写的,因此对Java开发者来说非常...

    commons-httpclient包和ksoap2-android-assembly包

    4. **发送请求**:通过HttpClient的HttpMethod接口(如HttpGet或HttpPost),将SOAP请求发送到服务器。 5. **接收响应**:处理服务器返回的HTTP响应,并从中提取SOAP响应。 6. **解析SOAP响应**:使用KSOAP2的解析器...

    soap 开发(axis的使用)&& 天气预报查询工具

    4. **使用HTTP发送SOAP请求**: 在Java中,可以使用`HttpURLConnection`或Apache HttpClient库来发送HTTP POST请求,包含SOAP请求XML。请求的URL应指向服务的SOAP端点(Endpoint),通常是一个HTTP URL。 5. **解析...

    android httpClient所需jar包

    - 发送HTTP请求:HttpClient库提供了发送GET、POST等请求的方法,并可以处理响应。 - 调用Web服务:ksoap2库帮助开发者与SOAP Web服务进行通信,通过构建和解析SOAP消息来调用服务方法。 - 日志记录: Commons ...

    Titanium中SOAPClient访问SOAP协议的WebService

    总之,使用Titanium的SOAPClient访问SOAP Web服务涉及到构建SOAP请求消息、设置请求头、发送请求以及解析响应。理解SOAP协议的基础知识和Titanium的HTTPClient机制是实现这一目标的关键。在实践中,不断调试和优化,...

    httpclient依赖jar包和自己写的客户端例子

    如果是SOAP请求,通常需要将SOAP XML消息作为请求体: ```java StringEntity entity = new StringEntity(mySoapMessage); httpPost.setEntity(entity); ``` 5. **执行请求并获取响应**:使用`execute()`方法...

Global site tag (gtag.js) - Google Analytics