gpt4 book ai didi

java - 安卓:ksoap, "UnknownHostException:host is unresolved"取决于 API

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:11 24 4
gpt4 key购买 nike

感谢您的关注。

我在使用 ksoap2 通过 android 调用网络服务时遇到问题。

我有一些调用网络服务的功能。

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) - 一切正常,函数从网络服务获得正确响应.但是当我将模拟器(或真实设备)与 API 7 (Android 2.x) 一起使用时 - 然后我得到一个异常

“java.net.UnknownHostException:主机未解析:MyWeb.com:80”

我在两种情况下都使用相同的代码,一个接一个地尝试 - 但我得到了不同的结果

有人有什么想法吗?

UPD1:我的 list 中的权限部分是

<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 调用 web 服务时,我使用多线程代码。也许,当它与 API7 一起工作时,源代码不应该是多线程的?

UPD3:假设是错误的。从主线程调用 webservice 会导致相同的异常。

但我注意到,当我在另一台计算机上运行我的项目时,它工作正常。尽管我使用相同的代码。

最佳答案

UnknownHostException:host is unresolved

确保您在 AndroidManifest.xml 中添加了权限像这样

<uses-permission android:name="android.permission.INTERNET" />

还要确保将其添加到里面 <manifest>标签不在任何其他标签内,如 <application>等等

附言。

还要确保以下权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

关于java - 安卓:ksoap, "UnknownHostException:host is unresolved"取决于 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18784053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com