`
enki_ding
  • 浏览: 210806 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java soap提交数据时乱码问题

阅读更多

在一个项目中,要用java访问.net写的web service。有一个功能是修改用户资料,这就涉及到数据的提交处理。

遇到提交数据时中文乱码问题。原先代码如下的:

String SOAPUrl= BaseUrl.baseUrl+"ProfileService.asmx?op=GetMemberInfoByCardNo";
	 	String SOAPAction = "...................................................";
	     String xml="............."这里省略生成的xml字符串;
	    System.out.println(xml);
	     URL url = new URL(SOAPUrl);
	     URLConnection connection = url.openConnection();
	     HttpURLConnection httpConn = (HttpURLConnection) connection;
	     // Set the appropriate HTTP parameters.
	     httpConn.setRequestProperty( "Content-Length",String.valueOf( xml.length()));
	     httpConn.setRequestProperty("Content-Type","text/xml; charset=utf-8");
	 	httpConn.setRequestProperty("SOAPAction",SOAPAction);
	     httpConn.setRequestMethod( "POST" );
	     httpConn.setDoOutput(true);
	     httpConn.setDoInput(true);
	     // Everything's set up; send the XML that was read in to b.
	     OutputStream out = httpConn.getOutputStream();
	    
	    PrintWriter writer=new PrintWriter(out);
	    osw.write(xml);
	    osw.flush();

 修改一下代码,如下:

String SOAPUrl= BaseUrl.baseUrl+"/ProfileService.asmx?op=GetMemberInfoByCardNo";
	 	String SOAPAction = "...................................................";
	     String xml=".......................";这里省略生成的xml字符串
	    System.out.println(xml);
	     URL url = new URL(SOAPUrl);
	     URLConnection connection = url.openConnection();
	     HttpURLConnection httpConn = (HttpURLConnection) connection;
	     // Set the appropriate HTTP parameters.
	     httpConn.setRequestProperty( "Content-Length",String.valueOf( xml.length()));
	     httpConn.setRequestProperty("Content-Type","text/xml; charset=utf-8");
	 	httpConn.setRequestProperty("SOAPAction",SOAPAction);
	     httpConn.setRequestMethod( "POST" );
	     httpConn.setDoOutput(true);
	     httpConn.setDoInput(true);
	     // Everything's set up; send the XML that was read in to b.
	     OutputStream out = httpConn.getOutputStream();
	     OutputStreamWriter osw=new OutputStreamWriter(out,"utf-8");





	    //PrintWriter writer=new PrintWriter(out);
	    osw.write(xml);




	    osw.flush();



 注意红色粗体部份。将原先的PrintWriter换成OutputStreamWriter,并在构造OutputStreamWriter实例时,用上"utf-8"编码(我的项目中是用utf-8)

 

分享到:
评论

相关推荐

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...

    Java使用SOAP获取webservice实例解析

    ### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...

    java+soap+webservice 调用模拟

    Java与SOAP(Simple Object Access Protocol)以及Web服务的结合是一种常见的技术栈,用于构建分布式系统。本教程将深入探讨如何使用Java进行SOAP Web服务的调用,并帮助你掌握这一技能。 首先,理解SOAP是什么至关...

    java_soap学习资料

    Java SOAP(Simple Object Access Protocol)学习资料主要涵盖了如何使用Java进行SOAP Web服务的开发、调用和交互。SOAP是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。以下是一些重要的知识点: 1. *...

    JAVA SOAP技术

    JAVA SOAP技术

    用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC).

    本文将深入探讨如何使用Java来实现基于SOAP的XML文档网络传输以及远程过程调用(RPC)。这是一项关键的技术,它允许不同系统间的无缝交互,即使这些系统采用不同的编程语言和平台。 SOAP是一种基于XML的协议,主要...

    .NET 访问JAVA的WEBSERVICE使用SOAP头

    当.NET应用程序需要与Java WebService进行交互时,主要的挑战在于SOAP头的处理。由于.NET自动生成的代理类可能不包含对SOAP头的支持,这要求开发人员手动修改代理类,以支持SOAP头的传输。以下步骤详细介绍了这一...

    webservice-java_soap.pdf

    根据提供的文档内容,本文主要介绍了如何在WebService中利用Java SOAP技术处理复杂的Java数据类型,特别是数组及JavaBean等。文章通过具体的示例讲解了如何创建一个可以处理股票交易量的服务,并详细介绍了服务端的...

    soap.rar_SOA_SOAP java_java soap_soap

    标题中的"soap.rar_SOA_SOAP_java_java_soap_soap"揭示了主要的主题是SOAP(简单对象访问协议)技术,它在服务导向架构(SOA)中扮演着关键角色,并与Java编程语言紧密关联。SOAP是一种基于XML的协议,用于在分布式...

    通过webservice提交xml数据以及soap协议的使用

    在本主题中,我们将深入探讨如何通过Web服务提交XML数据以及SOAP(Simple Object Access Protocol)协议的使用。 XML(Extensible Markup Language)是Web服务中常用的数据交换格式,它是一种自描述、结构化的文本...

    Java SOAP协议

    ### Java SOAP协议详解 #### 一、概述与背景 SOAP(Simple Object Access Protocol)是一种轻量级协议,用于在分布式环境中进行数据交换。SOAP最初由IBM、Microsoft等公司在1998年提出,并随后被标准化为W3C推荐...

    java 调用soap

    Java调用SOAP(Simple Object Access Protocol)服务是Java开发者在集成不同系统或服务时常见的需求。SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本篇文章将详细阐述如何在Java中实现对SOAP...

    JAVA SOAP 用到的所有jar文件

    JAVA SOAP 用到的所有jar文件 axis.jar axis-ant.jar commons-discovery-0.2.jar jaxrpc.jar axis-schema.jar wsdl4j-1.5.1.jar saaj.jar xmlsec-1.3.0.jar

    java发送SOAP报文

    Java发送SOAP报文是Web服务通信中的一个常见任务,它涉及到使用XML格式的数据进行网络通信。SOAP(Simple Object Access Protocol)是一种轻量级的、基于XML的协议,用于在Web上交换结构化和类型化的信息。本文将...

    JAVA输出soap报文.pdf

    为了解决程序的掩护问题,这篇文章将介绍如何使用 JAVA 输出 SOAP 报文,以便于开发者更方便地使用 SOAP 协议。 SOAP 协议简介 SOAP(Simple Object Access Protocol)是一种基于 XML 的轻量级协议,用于交换结构...

    soap与java编程指南

    **SOAP(简单对象访问协议)与Java编程指南** 在IT领域,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化信息。SOAP允许不同平台上的应用程序通过网络进行通信,它...

    SOAP.rar_SOAP java_Web Service SOAP_java soap_java web service_s

    在Java中,通常使用JAX-WS(Java API for XML Web Services)来处理SOAP消息,它提供了一种标准的方式来创建和消费Web服务。 4. **SOAP服务实现**:在Java中,可以通过实现一个接口或者继承特定的类来创建SOAP服务...

    java SOAP教程

    而错误处理元素用于报告在处理SOAP消息时遇到的任何问题。 #### SOAP信封(Envelope) 信封元素是SOAP消息的根元素,所有其他元素都嵌套于其中。它定义了消息的基本框架,确保消息的完整性和一致性。信封元素通常...

    JAVA 调用SAP SOAP webservice.docx

    JAVA 调用 SAP SOAP webservice 详解 在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP...

Global site tag (gtag.js) - Google Analytics