Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Android应用程序与WCF通信_C#_Java_Android_.net_Wcf - Fatal编程技术网

C# Android应用程序与WCF通信

C# Android应用程序与WCF通信,c#,java,android,.net,wcf,C#,Java,Android,.net,Wcf,我目前有一个基于Windows技术(使用C#.net)的客户机/服务器应用程序。我将WCF与传输和消息凭据一起使用。(即具有基本用户名/密码消息身份验证的SSL) 即将推出的项目之一是允许客户端在Android平台(手机或平板电脑)上运行 是否有Android/Java/Linux库可用于使用Android代码中的WCF服务 如果没有,我想我将不得不围绕服务编写一个包装,并使用另一种方法。WCF基本上公开了一个SOAP服务(前提是绑定是这样设置的)。一个相当流行的Android库可以在上找到 不

我目前有一个基于Windows技术(使用C#.net)的客户机/服务器应用程序。我将WCF与传输和消息凭据一起使用。(即具有基本用户名/密码消息身份验证的SSL)

即将推出的项目之一是允许客户端在Android平台(手机或平板电脑)上运行

是否有Android/Java/Linux库可用于使用Android代码中的WCF服务


如果没有,我想我将不得不围绕服务编写一个包装,并使用另一种方法。

WCF基本上公开了一个SOAP服务(前提是绑定是这样设置的)。一个相当流行的Android库可以在上找到


不过,您需要在WCF端进行一些设置。首先,不要使用消息安全性。仅使用运输安全。传输允许您使用HTTPS,这正是您想要的。根据我的经验,消息安全性只在Windows客户端之间工作,不允许SSL(它对消息本身进行加密,以便它可以通过未加密的通道),并且似乎不适用于其他类型的客户端。如果我还记得的话,您希望使用BasicHttpBinding的一些变体,而不是WSHttpBinding,但目前我面前没有一个项目需要仔细检查。

WCF基本上公开了SOAP服务(前提是绑定是以这种方式设置的)。一个相当流行的Android库可以在上找到


不过,您需要在WCF端进行一些设置。首先,不要使用消息安全性。仅使用运输安全。传输允许您使用HTTPS,这正是您想要的。根据我的经验,消息安全性只在Windows客户端之间工作,不允许SSL(它对消息本身进行加密,以便它可以通过未加密的通道),并且似乎不适用于其他类型的客户端。如果我记得的话,您希望使用BasicHttpBinding的一些变体,而不是WSHttpBinding,但目前我面前没有一个项目需要仔细检查。

你也可以为你的WCF服务创建一个JSON绑定——也就是将你的WCF服务同时作为WCF服务和JSON服务公开——然后使用标准的Android webservice方法——这是一种hokey。这种方法的优点是您不必分发KSoap,而且为android编写的代码更少。JSON使用更少的带宽(如果这是一个问题)

您还可以为您的WCF服务创建JSON绑定-即将您的WCF服务同时公开为WCF服务和JSON服务-然后使用标准的Android webservice方法-这是一种hokey。这种方法的优点是您不必分发KSoap,而且为android编写的代码更少。JSON也使用较少的带宽(如果这是一个问题)

可能重复的价值,我认为答案可能会有一点变化。可能重复的价值,我认为答案可能会有一点变化。谢谢你的评论。但是,我不确定我是否可以不使用消息安全性,因为我需要对每个调用的用户进行身份验证,因为有些用户可以进行一些调用,但其他用户不能。我想我可以将用户名/密码作为参数传递到每个方法中,这只意味着对我现有的Windows客户端/服务器进行了一些更改,这是我希望避免的。有一次我处理了为非Windows使用者(在这种情况下是PHP)编写WCF服务的问题,我们最终在登录时传递了一个GUID令牌,该令牌随后续的每个请求一起发送回。我知道你所说的痛苦是什么意思,但是,如果你不得不重新设计现有的服务,也许有人有更好的解决方案。再想一想,有一种叫做“它”的东西,听起来似乎能满足你的需要,但我不确定,我从未使用过。嗨,安德鲁,我当前正在windows配置中使用TransportWithMessageCredential。但我想在Android上复制这个。谢谢你的评论。但是,我不确定我是否可以不使用消息安全性,因为我需要对每个调用的用户进行身份验证,因为有些用户可以进行一些调用,但其他用户不能。我想我可以将用户名/密码作为参数传递到每个方法中,这只意味着对我现有的Windows客户端/服务器进行了一些更改,这是我希望避免的。有一次我处理了为非Windows使用者(在这种情况下是PHP)编写WCF服务的问题,我们最终在登录时传递了一个GUID令牌,该令牌随后续的每个请求一起发送回。我知道你所说的痛苦是什么意思,但是,如果你不得不重新设计现有的服务,也许有人有更好的解决方案。再想一想,有一种叫做“它”的东西,听起来似乎能满足你的需要,但我不确定,我从未使用过。嗨,安德鲁,我当前正在windows配置中使用TransportWithMessageCredential。但我想在Android上复制这个。