java – Android:ksoap,“UnknownHostException:host is unresolved”取决于API
作者:互联网
感谢您的关注.
我在使用ksoap2通过android调用web服务时遇到问题.
我有一些功能来调用webservice.
public String CallWebServiceFunction()
{
String WSDL_TARGET_NAMESPACE = "http://MyWeb.com/";
String SOAP_ADDRESS = "http://MyWeb.com/pvws.asmx";
String SOAP_ACTION = "http://MyWeb.com/SoapAction";
String OPERATION_NAME = "SoapAction";
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
PropertyInfo prop1 = new PropertyInfo();
prop1.setName("prop1");
prop1.setValue("1");
request.addProperty(prop1);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
Object response=null;
try
{
httpTransport.call(SOAP_ACTION, envelope);
response = envelope.getResponse();
}
catch (Exception exception)
{
response=exception.toString();
}
return response.toString();
}
当我使用使用API 16或更高版本(Android 4.x)的模拟器(或真实设备)时 – 一切正常,函数从webservice获得正确的响应.但是当我使用API 7(Android 2.x)的模拟器(或真实设备)时 – 我得到一个例外
“java.net.UnknownHostException:主机未解析:MyWeb.com:80”
我在两种情况下使用相同的代码,一个接一个地尝试 – 我得到不同的结果
有没有人有任何想法?
UPD1:我的清单中的权限部分是
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
UPD2:假设.
最初我为targetSdkVersion = 16创建了我的应用程序.因此,当我通过Internet调用webservice时,我使用多线程代码.也许,当它与API7一起使用时,源代码不应该是多线程的?
UPD3:假设错了.从主线程调用webservice会导致相同的异常.
但我注意到,当我在另一台计算机上运行我的项目时 – 它正常工作.尽管我使用相同的代码.
解决方法:
UnknownHostException:host is unresolved
确保您在AndroidManifest.xml中添加了这样的权限
<uses-permission android:name="android.permission.INTERNET" />
并确保其内部添加< manifest>标记不在任何其他标记内,例如< application>等等
PS.
还要确保具有以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
标签:java,android,web-services,android-ksoap2 来源: https://codeday.me/bug/20190709/1408183.html