kSoap2 выбрасывая http 404 не найдена ошибка на transport.call(url)
Я работаю над вызовом веб-службы wdsl из приложения для Android с помощью kSoap2 v3.1 и продолжаю получать сообщение об ошибке "Не найдено". Я проверил, что URL, Soap_Action, Method_Name и пространство имен являются правильными. Я также искал другие причины, по которым выдается эта ошибка, и никакие другие решения не работают для меня. Веб-сервис размещается локально, а я отлаживаю локально. Я убедился, что служба работает с использованием WC FStorm и WCFTestClient, и все сделанные вызовы выполняются без каких-либо проблем. Я не думаю, что с моим приложением что-то не так, поэтому я искал разные способы привязки в сервисе.
Вот App.config для веб-сервиса
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="LocalWCF.Service1Behavior" name="LocalWCF.LocalWCF">
<endpoint address="http://localhost/LocalWCF/LocalWCF.LocalWCF.svc/" binding="basicHttpBinding" contract="LocalWCF.ILocalWCF" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/LocalWCF/LocalWCF.LocalWCF.svc/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="LocalWCF.Service1Behavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="TradersWallDBEntities" connectionString="metadata=res://*/Data.TradersWallDB.csdl|res://*/Data.TradersWallDB.ssdl|res://*/Data.TradersWallDB.msl;provider=System.Data.SqlClient;provider connection string="data source=RADSTATION1000;initial catalog=TradersWallDB;persist security info=True;user id=DefaultUser;password=testpass;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
А вот метод в приложении, которое вызывает сервис
public long SendUser(User newUser)
{
final String SOAP_ACTION = "http://tempuri.org/ILocalWCF/AddUserToDB/";
final String METHOD_NAME = "AddUserToDb";
final String NAMESPACE = "http://tempuri.org/";
final String URL = "http://10.0.2.2/LocalWCF/LocalWCF.LocalWCF.svc";
final String email = newUser.email;
final String userName= newUser.userName;
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("userName", userName);
request.addProperty("email", email);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
/**
Element e = new Element();
e.setName("To");
e.setNamespace("http://schemas.xmlsoap.org/ws/2004/08/addressing");
e.addChild(Node.TEXT,URL);
Element e1 = new Element();
e1.setName("Action");
e1.setNamespace("http://schemas.xmlsoap.org/ws/2004/08/addressing");
e1.addChild(Node.TEXT,SOAP_ACTION);
envelope.headerOut = new Element[]{e,e1};
*/
HttpTransportSE transport= new HttpTransportSE(URL);
transport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
return Long.parseLong(response.toString());
} catch (Exception e) {
return -1;
}
}
Любая помощь будет оценена. Я застрял на этом и прошел множество исправлений, но это мое последнее маленькое препятствие. Спасибо!