我访问 wcf Web 服务的代码在 android 应用程序中不起作用:
在顶部我有:
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://10.86.164.102/ABCWcfService/ABCWcfService.svc";
private static final String SOAP_ACTION = "http://tempuri.org/IABCWcfService/GetTitle";
private static final String METHOD_NAME = "GetTitle";
然后在我的方法中:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try
{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
String receivedString = result.toString();
}
catch (Exception e)
{
}
我发现它在 androidHttpTransport.call(SOAP_ACTION,envelope); 但 e 的值为 null。
我在 Java 项目中使用相同的代码来访问相同的 wcf Web 服务,并且工作正常。
我确实添加了:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-sdk android:minSdkVersion="8" />
<application>
....
</application>
在清单文件中,在应用程序部分之前。但仍然无法正常工作。
我在互联网上阅读了很多不同的主题。他们都没有解决我的问题。有人有更好的建议吗?谢谢你。
Web 服务与 android 应用程序在同一台机器上运行。