У меня есть служба WCF, которая размещена на удаленном сервере с использованием IIS.Я хочу сделать эту службу совместимой с Android, чтобы использовать эту службу на клиенте Android.У меня проблема в том, что я пытаюсь использовать ksoap2 для подключения к сервису, но каждый раз, когда я пытаюсь вызвать метод, он выдает ошибку 400.Я использовал fiddler2, чтобы попытаться выяснить, в чем проблема, и в дополнение к ошибке 400 она также отправляет обратно длину содержимого: 0 (не знаю, является ли это причиной. Интересный факт, когда я указываю содержимоедлина в запросе на fiddler, это не дает мне 400 ошибок, а скорее вообще не возвращает ответ) Я уже пытался изменить привязку к webHttpBinding вместо wsHttpBinding и добавить атрибут WebGet над методомс URITemplate, BodyStyle и т. д., но не повезло.Вот мой код:
Сервис
public class PublicService : IPublicService
{
public Wallpaper[] GetWallpapers()
{
//return _wallpaperRepository.Items.ToArray();
return new Wallpaper[]{ new Wallpaper()
{
Id = 10
}};
}
}
Интерфейс
[ServiceContract(Namespace = "http://XXXXXXXX.com/ServiceA")]
public interface IPublicService
{
[OperationContract]
Wallpaper[] GetWallpapers();
}
Web.Config
<bindings>
<wsHttpBinding>
<binding name="android"
maxReceivedMessageSize="4097152"
maxBufferPoolSize="4097152">
<readerQuotas
maxStringContentLength="4097152"
maxArrayLength="4097152"
maxBytesPerRead="4097152"
maxNameTableCharCount="4097152"
maxDepth="4097152"/>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="Service.Concrete.PublicService" behaviorConfiguration="ServiceBehavior">
<endpoint address="PublicService" binding="wsHttpBinding" name="PublicService" contract="Service.Abstract.IPublicService" bindingConfiguration="android"/>
<endpoint binding="mexHttpBinding" bindingConfiguration="" name="mex" contract="IMetadataExchange"/>
</service>
Я бью себя по головеза последние несколько часов и проходя через бесчисленное количество поисков в Интернете, я совершенно не знаю, что делать дальше.Если кто-нибудь знает, что я делаю неправильно, любой совет будет с благодарностью.