精华内容
下载资源
问答
  • webservice 参数传递

    千次阅读 2007-03-02 11:08:00
    webservice 参数传递这两天碰到一个比较奇怪的事情,一套完整的的smart client程序,client和server都是C#的,在client和client生成的代理类都没有变更的情况下,修改server端的webservice的webmethod的接口参数,对...
    webservice 参数传递
    这两天碰到一个比较奇怪的事情,
    一套完整的的smart client程序,client和server都是C#的,
    在client和client生成的代理类都没有变更的情况下,修改server端的webservice的webmethod
    的接口参数,对程序都没有影响,仍然能够正常运行。
    client
    clsTestService.CreateDiretory( "Name" );
     
    Reference.cs
    BeginCreateDiretory(string strName, System.AsyncCallback callback, object asyncState)
     
    webservice
    public void CreateDiretory( string strName )
    1.追加参数(以int测试)
    webservice
    public void CreateDiretory( string strName, int i )
     
    此时正常执行,只是  i 的值被默认为0
     
    2.减少参数
    webservice
    public void CreateDiretory( )
     
    将webservice接口参数删掉,但是client不变,正常调用
     
    3.改变参数名称
    client
    clsTestService.CreateDiretory( "Name" );
     
    代理类不变
     
    webservice
    public void CreateDiretory( string strTestName )
     
    此时,strTestName 所接收到的参数值不是 "Name"
    而是 null
     
    测试到此时,也有点头绪了,从测试结果看
    webservice的参数传递是和参数名有关系的
    是根据参数名来匹配和传值得。
     
    因为也没有查相关资料,只是根据项目中的问题测试了一下
    所以也不知道得出的结论是否正确,还有待从理论上说明。 
    展开全文
  • webservice参数传递

    2014-04-11 15:33:13
    webservice有两个应用 A应用和B应用A应用提供webservice接口。。 B应用调用A应用的接口, 然后插入数据到A应用中(数据是从B中查询得到的),想请问下A应用是怎么接受数据的。 是用的axis2 这是客户端(同上的B...
  • 如何解决WebService参数传递中文乱码问题

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

    参考文章:

    (1)如何解决WebService参数传递中文乱码问题

    (2)https://www.cnblogs.com/yefengyu/p/5085243.html


    备忘一下。


    展开全文
  • 如何解决WebService参数传递中文的问题如何解决WebService参数传递中文的问题 很多人在调用WebService所提供方法的时候,发现如果当字符串中含有中文,传到WebService端就发现是乱码,这是...
    如何解决WebService参数传递中文的问题
    如何解决WebService参数传递中文的问题

    很多人在调用WebService所提供方法的时候,发现如果当字符串中含有中文,传到WebService端就发现是乱码,这是由于WebService默认的编码是“UTF-8”,当调用端和接收端用不同编码进行转换的时候,就会出现此类问题,如何解决这类问题呢,具体要根据你的环境而定。

    如果WebService的代码是你可控的,那么修改起来很简单,只需要把WebService工程中的web.config文件进行修改,即把使用到“utf-8”地方改成“gb2312”就行了。

    如果WebService的代码是你不可控的,即你无法去修改WebService工程中的web.config文件,那么做起来就比较费事了,就是你需要亲自把当前字符串转换成“UTF-8”的编码,具体如下:

    ///

    /// Change string from default encoding to "UTF-8" encoding

    ///

    /// the string to be changed

    /// if changed successfully, return string under "UTF-8" encoding;

    /// else return null

    ///

    public static string GetUnicodeString( string sValue )

    {

    Encoding def = Encoding.Default;

    Encoding unicode = Encoding.UTF8;

    // Check whether default encoding is same as "UTF-8" encoding

    if( def == unicode ) return sValue;

    // Check parameter

    if( sValue == null || sValue.Length == 0 ) return sValue;

    // 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 = new char[ unicodeBytes.Length] ;

    for( int i = 0; i < unicodeBytes.Length; i++ )

    uniChars[i] = (char)(unicodeBytes[i]);

    return new string( uniChars );

    }

    那么调用WebService之前,需要把含有中文的字符串用以上的函数进行转换,然后用转换后的字符串去调用WebService,就可以避免在WebService中出现乱码现象。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-130558/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/374079/viewspace-130558/

    展开全文
  • WebService参数传递问题

    2013-05-15 10:17:44
    WebService一般是怎样传递参数的吗?是把想要传递的值拼成一个XML的字符串传递吗?还是直接传递基本数据类型?入参为单个字符串好说,如果是集合一般是怎么处理呢
  • 通过Myeclipse10.0 jdk1.7调用VS2012 webService遇到java客户端参数传递不过去的问题,搞了一下午终于出结果了,其实网上好多方法都只是一部分,需要综合一下。   客户端我是用import org.apache.axis.client.Call;...

        通过Myeclipse10.0 jdk1.7调用VS2012 webService遇到java客户端参数传递不过去的问题,搞了一下午终于出结果了,其实网上好多方法都只是一部分,需要综合一下。


    客户端我是用import org.apache.axis.client.Call;方法调用服务成功解决该问题的的,通过RPCServiceClient以及axis2自动生成的stub调用均未找到合适的传递参数的方法


    client:

    import java.net.MalformedURLException;
    import java.rmi.RemoteException;

    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.ServiceException;

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;

    public class test4 {
     public static void main(String[] args) throws RemoteException, MalformedURLException, ServiceException {
      String service_url = "http://localhost:30332/WebService1.asmx";
      Service ser = new Service();
      Call call = (Call) ser.createCall();
      call.setTargetEndpointAddress(new java.net.URL(service_url));
      QName opAddEntry = new QName("http://tempuri.org/", "HelloWorld");
      call.setOperationName(opAddEntry);
      call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);
      call.setReturnType(XMLType.XSD_STRING);

      Object[] opAddEntryArgs = new Object[] { "jone" };
      String result = (String) call.invoke(opAddEntryArgs);
      call.invoke("http://tempuri.org/", "HelloWorld", opAddEntryArgs);
      System.out.println("result:" + result);
    }
    }
    服务端:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Description;
    using System.Web.Services.Protocols;
    using System.Diagnostics;
    namespace WebApplication1
    {
        /// <summary>
        /// WebService1 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
        // [System.Web.Script.Services.ScriptService]
        [SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
        public class WebService1 : System.Web.Services.WebService
        {
          [SoapRpcMethod(Use = SoapBindingUse.Literal, Action = "http://tempuri.org/HelloWord", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]
          [WebMethod]
            public string HelloWorld(string name)
            {
              //Console.WriteLine("name:"+name);
              //Console.ReadKey();
                Debug.WriteLine("NAME:"+name);
              return "hello"+name;
            }
           [SoapRpcMethod(Use = SoapBindingUse.Literal, Action = "http://tempuri.org/add", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]
            [WebMethod]
            public int add(int x, int y)
            {
                return x + y;
            }
          
        }
    }

    调用结果:

    result:hellojone


    1 call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);
      call.setReturnType(XMLType.XSD_STRING);

    2[SoapRpcMethod(Use = SoapBindingUse.Literal, Action = "http://tempuri.org/HelloWord", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]        (c#中每个方法前都要添加这样的声明,否则会报错)

    这两步是必要条件缺一不可,貌似是用以匹配二者的命名空间

     

    3[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]

    本方法加在类之前,旨在防止java调用时出现无法识别 soapAction的问题

    PS:1 同学用eclipse做客户端直接用exis2自动生成的stub操作即可调用成功

    HelloWorld helloWorld = new HelloWorld();
      helloWorld.setName("jone");
      HelloWorldResponse re=stub.HelloWorld(helloWorld);

    System.out.println( re.getHelloWorldResult());

    但是我跟他C/S代码完全相同却出现这个问题,说明,跟客户端IDE有关。

            2通过RPCServiceClient以及axis2自动生成的stub调用如果可以通过某种API实现两边的命名空间一致,或许也能传递成功,这里我并未深究

            3 按原理通过axis2生成stub调用时正确利用了服务器端的wsdl实现的调用功能,但这里苦于调用java编辑的服务器webservice抛出wrong number of arguments,调用C#webservice出现参数传递失败问题,目前仅能用本帖方法实现,这也可可能跟IDE有关,同学用eclipse就为出现此类情况。。。请大家引以为戒

     

     

     


     

     

    展开全文
  •  如果Client端用户传递的入口参数是String[],那么在服务端执行的必然会发生转型错误。   因此,在webservice中把List, Map作为service的input, output的做法都是不可行的。至少在jdk1.4的版本中是这样的。   一...
  • 很多人在调用WebService所提供方法的时候,发现如果当字符串中含有中文,传到WebService端就发现是乱码,这是由于WebService默认的编码是“UTF-8”,当调用端和接收端用不同编码进行转换的时候,就会出现此类问题,...
  • 很多人在调用WebService所提供方法的时候,发现如果当字符串中含有中文,传到WebService端就发现是乱码,这是由于WebService默认的编码是“UTF-8”,当调用端和接收端用不同编码进行转换的时候,就会出现此类问题,...
  • Xfire调用webservice无法传递参数问题

    热门讨论 2013-08-22 13:20:07
    此程序demo详细描述的从发布接口到调用接口的全部过程,详细描述了Xfire调用webservice参数无法传递的问题。
  • 下面小编就为大家带来一篇JQuery Ajax WebService传递参数的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 最近在做的项目中用到cxf webservice,记得还是前几年的时候用过,这两年都没有再用过,有些东西都记不起来了。遇到个问题,记录下来。觉得记录些东西还是有必要的,虽然以前没有记录的习惯。 遇到个问题,就是...
  • JaxWsProxyFactoryBean调用cxf搭建的webService服务传递不同类型参数-附件资源
  • 若客户端,调用webservice时,参数是一个object, 直接传递参数,会报错。 需要转换。 如果是动态生成客户端,则要如下转换object 参数 Object object = Thread.currentThread().getContextClassLoader()....
  • soapUI测试webservice接口传递xml参数

    千次阅读 2018-10-22 14:10:30
    使用soapUI对webservice接口进行测试的时候如何传递参数是xml,需要把传递参数放在转意符中。&lt;![CDATA[ ]]&gt; 如: &lt;![CDATA[&lt;?xml version="1.0" encoding="UTF-8...
  • 因项目需要调用webservice接口,一番研究后找到一个相对舒服的方法,下面一一介绍: 首先pom.xml加入 <!-- CXF调用接口 --> <dependency> <groupId>org.apache.axis</groupId> <...
  • 首先说参数为User对象。 服务器端照常如旧。还是用最初的文档中方式搭建。其中有个方法如下:   [html] view plaincopyprint? 1. public User getUserName(User u){  2. User user= new User(); ...
  • 最近开发Xfire发布调用webservice,发现无法传递参数。 问题出在,发布的webservice接口类需要使用如下这种定义方式   package com.demo.service; import javax.jws.WebParam; public interface MyService {  ...
  • java webService坑点 经历一个晚上的尝试以及某航狗屎的“互联网新技术”大作业的折磨,终于找到代码...当客户端输入为多个参数时会出现第一个参数传递到服务端成功,但是后面的参数都为null,并报出异常: impleDeseri
  • 后端: 前端: 运行结果: 感觉还是比较简单,只是好久没有写webservice 了,上网找了一下写法 转载于:https://www.cnblogs.com/yuchenghao/p/11020463.html...
  • java利用axis2调用.net写的webservice传递自定义的实体类参数
  • 我会传传递一个参数,但是传递多个参数,就返回错误。我不太清楚axis2如何传递多个参数,当传递多个参数的时候,是不是还要设置参数名和参数值的对应关系?我先贴代码如下,希望大神帮我看看哪里有错误。  /*使用...
  • ajax方式请求WebService时的参数传递

    千次阅读 2017-07-11 08:56:06
    WebService ; Ajax调用;参数传递
  • 我的一段mule配置:` ... ... [payload['userAcct'],payload['userPwd']]" doc:name="userAcct"/>...我有两个参数,一个userAcct,一个是userPwd。使用set-payload好像只能传递一个。要怎么才能传递两个呢?谢谢。
  • 问题描述:IOS 调用C#写的Webservice传递参数Webservice取出的值为NULL,传递前在IOS里测试能取到值,麻烦用过这块的帮我看一下,已困扰我两天 啦~~哈哈 代码: NSMutableString *tps=[NSMutableString ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,721
精华内容 9,088
关键字:

webservice参数传递