首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android : ALLING A WEBSERVICE ERROR java.net.UnknownHostException: Unable to resolve host No address with hostname

Android : ALLING A WEBSERVICE ERROR java.net.UnknownHostException: Unable to resolve host No address with hostname
EN

Stack Overflow用户
提问于 2016-03-03 19:52:50
回答 3查看 1.1K关注 0票数 0

我正在尝试使用Soap在android中调用web服务url。但是我得到了一个错误

代码语言:javascript
复制
  "java.net.UnknownHostException: Unable to resolve host "manvswsc00": No address associated with hostname" .  

我已经在我的AndroidManifest文件中添加了互联网权限。有人能帮我解决这个问题吗?

在MyActivity.java中,我创建了一个活动,它使用Async Taski.e.调用web服务Url。在后台。

在Soap.java中,用于使用Soap调用webservice Url。

能不能也请检查一下webservice URL,我是不是在选择命名空间、url、方法、SOAP_ACTION时做错了什么?

日志:

代码语言:javascript
复制
    03-03 16:40:18.367    2500-2513/? W/System.err﹕ java.net.UnknownHostException: Unable to resolve host "manvswsc00": No address associated with hostname
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at java.net.InetAddress.lookupHostByName(InetAddress.java:470)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at java.net.InetAddress.getAllByName(InetAddress.java:215)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:114)
    03-03 16:40:18.403    1630-1880/? E/Surface﹕ getSlotFromBufferLocked: unknown buffer: 0xb4013a40
    03-03 16:40:18.409    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:245)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:130)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.sendData(HttpTransportSE.java:292)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:184)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at com.example.myapp.Soap.GetResponse(Soap.java:35)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at com.example.myapp.MyActivity$AsyncCallSoap.doInBackground(MyActivity.java:32)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at com.example.myapp.MyActivity$AsyncCallSoap.doInBackground(MyActivity.java:26)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:295)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at libcore.io.Posix.android_getaddrinfo(Native Method)
    03-03 16:40:18.592    2500-2513/? W/System.err﹕ at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    03-03 16:40:18.592    2500-2513/? W/System.err﹕ at java.net.InetAddress.lookupHostByName(InetAddress.java:451)
    03-03 16:40:18.592    2500-2513/? W/System.err﹕ ... 26 more

MyActivity.java

代码语言:javascript
复制
    package com.example.myapp;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.TextView;

    public class MyActivity extends Activity {
        TextView txt;

        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            txt = (TextView) findViewById(R.id.textView);
             new AsyncCallSoap().execute();
        }

        public  class AsyncCallSoap extends AsyncTask<String, Void, String>
        {
            private final ProgressDialog dialog = new ProgressDialog(getApplicationContext());
            protected String doInBackground(String... params) {
                Soap CS = new Soap();
                String response = CS.GetResponse();
                Log.d("MyApp", "response:" + response);
                return response;
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                dialog.dismiss();
                txt.setText(result);
            }
        }
    }

Soap.java

代码语言:javascript
复制
    package com.example.myapp;

    import android.util.Log;
    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapPrimitive;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;
    import org.xmlpull.v1.XmlPullParserException;

    import java.io.IOException;

    public class Soap {
       private String resp;
        public String GetResponse() {
             String URL = "http://manvswsc00:9085/bfweb/services/CreateAccount?wsdl";
            String NAMESPACE = "http://CreateAccount";
            String SOAP_ACTION_PREFIX = "/";
             String METHOD = "CB_ACC_CreateAccount_SRV";
            String SOAP_ACTION = " http://CreateAccount/CreateAccountPortType/CB_ACC_CreateAccount_SRVRequest";

                SoapObject request = new SoapObject(NAMESPACE, METHOD);
                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
            try {
                HttpTransportSE transport = new HttpTransportSE(URL);
                transport.debug=true;
                    transport.call(SOAP_ACTION, envelope);
                    resp = envelope.getResponse().toString();
                    Log.d("MyApp", "Response :" + resp);
                } catch (Exception e) {
                    Log.d("MyApp","Exception");
                e.printStackTrace();
                resp = e.getMessage();
            }
            return resp;
        }`enter code here`
    }

AndroidManifest.xml

代码语言:javascript
复制
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.example.myapp"
              android:versionCode="1"
              android:versionName="1.0">
        <uses-sdk android:minSdkVersion="10"/>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
            <activity android:name="MyActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>

    </manifest>`enter code here`

webservice

代码语言:javascript
复制
<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:scns="http://webservices.bankfusion.trapedza.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsns="http://CreateAccount" name="CreateAccountService" targetNamespace="http://CreateAccount">
<wsdl:types>
<xsd:schema xmlns="http://webservices.bankfusion.trapedza.com" xmlns:bf="http://www.misys.com/bankfusion/attributes" xmlns:ct0="http://www.misys.com/cbs/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://webservices.bankfusion.trapedza.com">
<xsd:import namespace="http://www.misys.com/bankfusion/attributes" schemaLocation="http://10.117.208.174:9085/bfweb/servlet/XSDServlet?resourceID=bf/com/misys/bankfusion/attributes/BFHeader"/>
<xsd:import namespace="http://www.misys.com/cbs/types" schemaLocation="http://10.117.208.174:9085/bfweb/servlet/XSDServlet?resourceID=bf/com/misys/cbs/types/CreateAccountRq"/>
<xsd:element name="bfgenericsoapheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" ref="authentication"/>
<xsd:element name="BFHeader" type="bf:BFHeader"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:group name="authgroup">
<xsd:sequence>
<xsd:element name="userName" type="xsd:string"/>
<xsd:element name="password" type="xsd:string"/>
</xsd:sequence>
</xsd:group>
<xsd:element name="authentication">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="authgroup"/>
<xsd:element minOccurs="0" ref="passCode"/>
<xsd:element minOccurs="0" ref="userLocator"/>
<xsd:element minOccurs="0" ref="casRestletUrl"/>
<xsd:element minOccurs="0" ref="casValidateUrl"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="password" type="xsd:string"/>
<xsd:element name="userLocator" type="xsd:string"/>
<xsd:element name="userName" type="xsd:string"/>
<xsd:element name="passCode" type="xsd:string"/>
<xsd:element name="casRestletUrl" type="xsd:string"/>
<xsd:element name="casValidateUrl" type="xsd:string"/>
<xsd:element name="CB_ACC_CreateAccount_SRV" type="scns:CB_ACC_CreateAccount_SRVType"/>
<xsd:complexType name="CB_ACC_CreateAccount_SRVType">
<xsd:sequence>
<xsd:element name="createAccountRq" type="ct0:createAccountRq"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CB_ACC_CreateAccount_SRVResponse" type="scns:CB_ACC_CreateAccount_SRVResponseType"/>
<xsd:complexType name="CB_ACC_CreateAccount_SRVResponseType">
<xsd:sequence>
<xsd:element name="createAccountRs" type="ct0:createAccountRs"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="bfgenericsoapheader">
<wsdl:part name="bfgenericsoapheader" element="scns:bfgenericsoapheader"></wsdl:part>
</wsdl:message>
<wsdl:message name="CB_ACC_CreateAccount_SRVResponse">
<wsdl:part name="CB_ACC_CreateAccount_SRVResponse" element="scns:CB_ACC_CreateAccount_SRVResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="CB_ACC_CreateAccount_SRVRequest">
<wsdl:part name="CB_ACC_CreateAccount_SRVRequest" element="scns:CB_ACC_CreateAccount_SRV"></wsdl:part>
</wsdl:message>
<wsdl:portType name="CreateAccountPortType">
<wsdl:operation name="CB_ACC_CreateAccount_SRV">
<wsdl:input message="wsns:CB_ACC_CreateAccount_SRVRequest"></wsdl:input>
<wsdl:output message="wsns:CB_ACC_CreateAccount_SRVResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CreateAccountSoapBinding" type="wsns:CreateAccountPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="CB_ACC_CreateAccount_SRV">
<soap:operation soapAction="http://CreateAccount/CreateAccountPortType/CB_ACC_CreateAccount_SRVRequest"/>
<wsdl:input>
<soap:body parts="CB_ACC_CreateAccount_SRVRequest" use="literal"/>
<soap:header message="wsns:bfgenericsoapheader" part="bfgenericsoapheader" use="literal"></soap:header>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CreateAccountService">
<wsdl:port name="CreateAccountPort" binding="wsns:CreateAccountSoapBinding">
<soap:address location="http://10.117.208.174:9085/bfweb/services/CreateAccount"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
EN

回答 3

Stack Overflow用户

发布于 2016-03-03 20:03:00

您正在使用String URL = "http://manvswsc00:9085/bfweb/services/CreateAccount?wsdl";此url执行rest服务。

您必须将服务器名称manvswsc00:9085更改为该服务器的IP Address

有关参考信息,请查看Android Browser hostnames does not get resolved if domain name is not appended

它会解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2016-03-03 20:53:51

我认为您的服务是在本地主机上实现的。因此,当您尝试在您的设备上连接它时。您的设备找不到您的can服务。您可以尝试使用浏览器打开您的服务。

票数 0
EN

Stack Overflow用户

发布于 2018-07-20 07:01:08

“缺少身份验证元素”错误是该银行平台如何对每个请求进行身份验证的特定问题。它们要求您在标题"authentication“元素中发送"userName”和"password“。这将解决这个问题。即:{鉴权:{userName:‘xxx’,密码:‘xxx’}}

或者,如果您发送的是纯xml,则填写报头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35771486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档