如何向Webservice里传递类参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何向Webservice里传递类参数相关的知识,希望对你有一定的参考价值。

参考技术A 很多人在调用WebService所提供方法的时候,发现如果当字符串中含有中文,传到WebService端就发现是乱码,这是由于WebService默认的编码是UTF-8
,当调用端和接收端用不同编码进行转换的时候,就会出现此类问题,如何解决这类问题呢,具体要根据你的环境而定。如果WebService的代码是你可控的,那么修改起来很简单,只需要把WebService工程中的web.config文件进行修改,即把使用到utf-8地方改成gb2312就行了。如果WebService的代码是你不可控的,即你无法去修改WebService工程中的web.config文件,那么做起来就比较费事了,就是你需要亲自把当前字符串转换成UTF-8的编码,具体如下:///<summary///Change
string
from
default
encoding
to
UTF-8
encoding///</summary///<param
name=sValue
the
string
to
be
changed</param///<returns
if
changed
successfully,
return
string
under
UTF-8
encoding;///
else
return
null///</returnspublicstaticstringGetUnicodeString(stringsValue
)
Encoding
def
=
Encoding.Default;
Encoding
unicode
=
Encoding.UTF8;
//
Check
whether
default
encoding
is
same
as
UTF-8
encodingif(
def
==
unicode
)returnsValue;
//
Check
parameterif(
sValue
==null||
sValue.Length
==
0
)returnsValue;
//
Convert
the
string
into
a
byte[].byte[]
defBytes
=
def.GetBytes(
sValue
);
//
Perform
the
conversion
from
one
encoding
to
the
other.byte[]
unicodeBytes
=
Encoding.Convert(
def,
unicode,
defBytes);char[]
uniChars
=newchar[
unicodeBytes.Length]
;for(inti
=
0;
i
<
unicodeBytes.Length;
i++
)
uniChars[i]
=
(char)(unicodeBytes[i]);returnnewstring(
uniChars
);那么调用WebService之前,需要把含有中文的字符串用以上的函数进行转换,然后用转换后的字符串去调用WebService
,就可以避免在WebService中出现乱码现象。

如何在调用WebService方法时,传递对象数组参数

参考技术A webservice发展了好久了,有好多种客户端部署调用方式,流程大致是先创建服务,再调用。下面的代码是创建一个简单的Webservice服务.server.phpregister('webserver');$soap->service($HTTP_RAW_POST_DATA);?>上面的代码就创建了一个Webservice服务程序,接下来创建调用Webservice接口的程序:call('webserver',$param,$web_url,$web_url);echo$ret;?>基本上流程就是这样,当然,实际应用上能写出很复杂的东西,这个你可以找找相关资料学习一下,上面的php调用Webservice程序是通用的,适合于PHP调用其它ASP.NET及Java等各类语言的Webservice接口。一些技术博文里有很详细的介绍和学习。参考地址:6978012本回答被提问者采纳

以上是关于如何向Webservice里传递类参数的主要内容,如果未能解决你的问题,请参考以下文章

如何解决WebService参数传递中文的问题

从 Android 向 .net Restful WebService 发送参数

webserive学习记录6-页面请求webservice

android 如何调用默认浏览器(webservice)打开网页使用post的方式传递参数。

webserive学习记录4-获取天气的例子

Asp.net WebService 接口中在传递参数过程中,参数是不是有长度限制?