我正在使用ksop连接到Android上的CrmDiscoveryService,问题来了:
SoapFault-faultcode:“soap:server”faultstring:“服务器无法处理请求。”faultactor:“null”详细信息:org。kxml2.kdom。Node@4061bd00
//here is namespace,endpoint,soapaction and methodname
public final static String DISCOVERY_NAMESPACE = "http://schemas.microsoft.com/crm/2007/CrmDiscoveryService/";
public final static String DISCOVERY_ENDPOINT_URL = "https://dev.crm5.dynamics.com/MSCRMServices/2007/Passport/CrmDiscoveryService.asmx";
public final static String SOAPACTION = "http://schemas.microsoft.com/crm/2007/CrmDiscoveryService/Execute";
private String MethodName = "Execute";
//below is the code connectting to crmdiscoveryservice
SoapObject rpc = new SoapObject(DISCOVERY_NAMESPACE, MethodName);
RetrievePolicyRequest retrievePolicyRequest = new RetrievePolicyRequest();
PropertyInfo info = new PropertyInfo();
info.name = "parameters";
info.type = retrievePolicyRequest.getClass();
info.setValue(retrievePolicyRequest);
rpc.addProperty(info);
HttpTransportSE ht = new HttpTransportSE(DISCOVERY_ENDPOINT_URL);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.encodingStyle = "utf-8";
envelope.setOutputSoapObject(rpc);
try {
ht.call(SOAPACTION, envelope);
if (envelope.getResponse() != null) {
SoapPrimitive response = (SoapPrimitive) envelope.bodyIn;
Log.e(tag, response.toString());
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
我自己定义了RetrievePolicyRequest。我试了很多次,还是有这个问题,有人知道怎么解决这个问题吗?
非常感谢。
以下是我认为您的代码可能出错的内容。
>
您可能使用了错误的propertyinfo.name.例如查看htt(REMOVE this)ps://dev.crm5.dynamics.com/MSCRMServices/2007/Passport/CrmDiscoveryService.asmx?WSDL,它看起来确实像您想要的info.name="Request";
。如果确实是这样,那么您将不得不修改您的复杂类型类也被请求。
尽管您正在添加一个类作为属性的类型,该属性包含info。类型=retrievePolicyRequest。getClass()
这(出于某种原因,我仍然不理解)是不够的。您还必须将这个类“映射”到您的信封。意思是你应该
envelope.dotNet = "true";
envelope.encodingStyle = "utf-8";
envelope.setOutputSoapObject(rpc);
envelope.addMapping(DISCOVERY_NAMESPACE, "Request", new Request().getClass());
这些是我立即看到的东西,下面是一些最终会帮助你的东西(它们在这样的soap调用中帮了我很多忙)。
首先,您必须查看soapUI。你可以开始14天的试用期。有了它,您可以将soapUI指向wsdl url,并允许您测试方法调用(因此您可以轻松看到您的请求应该是什么样子,也可以看到返回的xml是什么样子)。http://www.soapui.org/ . 如果使用soap11或soap12,该程序将逐字逐句地说明该方法是什么、名称空间是什么、url是什么。。。等等。用这个!!
其次,对于这样的复杂类型,您应该真正看到本教程:http://seesharpgears.blogspot.com/2010/10/ksoap-android-web-service-tutorial-with.html . 我从用头敲击键盘,到阅读本教程,然后让我的代码第一次工作(这从来没有发生过!)。
祝你好运,如果你需要更多帮助,只需发布!=)
乔伊
我正在使用ksop2依赖***(编译'com.google.code.ksoap2-android: ksoap2-android: 3.6.0')***命中肥皂Web服务,但得到以下异常。 异常-SoapFault-故障代码:“soap:Server”faultstring:“服务器无法处理请求--- JAVA代码
问题内容: 我在跟踪为什么无法连接到特定主机时遇到问题。 通过curl或浏览器,以下命令可以正常工作: 但是,如果我使用请求: 我得到: 在网络上,我仅看到客户端问好,服务器立即断开连接,因此似乎没有任何ssl或密码不兼容。(我希望这些都是SSL层错误)在这种情况下还有什么其他问题? 我在python 3.6.1上,请求2.14.2(带有安全性额外功能)。 问题答案: 该服务器以多种方式损坏。 一
这是mysql连接php脚本。它不断地显示出它的错误 警告:mysqli_connect():(HY000/1045):用户'user'@'localhost'(使用密码:YES)在第6行的C:\xampp\htdocs\index.php访问被拒绝 注意:尝试在第7行连接成功的C:\xampp\htdocs\index.php中获取非对象的属性 我听不懂,请帮帮我好吗?
首先,我知道有很多类似的问题,但我所看到的似乎都不能解决我的设置(我发现的任何解决方案都不管用)。所以请容忍我。。。 我的服务器主机名是IP地址,而不是域名(即URL看起来像:) 我的服务器有一个真正的证书(即,没有自签名) 我的应用程序的plist条目字典为空(没有任何例外-出厂设置ATS) 这是生产代码,我不能禁用ATS(我也不认为我可以,因为例外只适用于显式域名,而不是IP地址) (iOS9
当我运行时,会出现以下错误: 无法连接到开发服务器 包服务器正在运行,我可以直接从我的移动设备上的浏览器访问它。 我的Android设备连接到计算机并启用调试(我使用命令检查)。 我的Android版本是4.4.4,所以我不能使用命令。 我在Dev设置中设置了ID地址和端口。 USB调试已开启。 我用Windows 7. 如何修复此错误?
我编写了一个简单的java套接字服务器。我可以使用java客户端连接到它。 但是,当我尝试将android设备连接到它时,它会给出以下错误: 代码如下: 这一行:似乎是罪魁祸首。 错误消息“java.net.socketexception:套接字失败:EACCES(权限被拒绝)” Android java.net.SocketException:套接字失败:EACCES(拒绝权限) Android