Android-приложение не может разрешить хост

1

Я разрабатываю приложение в android, которое подключается к службе wcf и возвращает результаты. Wcf написан с мылом, и я использую KSOAP2 для подключения.

Сначала я подключался к определенному URL-адресу, и все работало красиво. Затем мне пришлось изменить URL-адрес, и я получил неизвестное исключение, unable to resolve host:No address associated with name.

Я сделал свое исследование, и решение всех других подобных проблем было добавлением в интернет-соединение Android Manifest. Но я сделал это уже. Какие-нибудь предложения? Еще одна особенность заключается в том, что использование первого URL-адреса, в котором мое приложение работает нормально, является нормальным URL-адресом, второй - на локальном сервере, кстати, хотя мой компьютер правильно подключен на этом сервере (правильно это означает, что когда я использую url с моим браузером не имеет проблем с подключением)

Я размещаю здесь класс, который устанавливает соединение:

Открытый класс KSoapConnector реализует InstantiateConnection {

private SoapObject response;
private WcfReceivedClass identifier;
private WcfReceivedClass[] receivedData;    
private final String NAMESPACE = "http://microsoft.com/webservices/";
private String METHOD_NAME="GetTeacherClass";         
private String SOAP_ACTION = "http://microsoft.com/webservices/IVertiSchool_SRV/GetTeacherClass";
private final String URL = "http://vertiserv1:81/VertiSchool_SRV.svc";

    //below is the url which was working fine
//private final String URL = "http://wcf.schoolportal.gr/VertiSchool_SRV.SVC";



public  KSoapConnector(String methodName,int mode){





    SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

    //here are the parameters for the wcf service and there values are correctly put   
    Request.addProperty("connString", "connectionString");
    Request.addProperty("TeCode", "tCode");
    Request.addProperty("Company", "cmp");
    Request.addProperty("Lng", "lng");
    Request.addProperty("MainPeriod", "mainPrd");


    SoapSerializationEnvelope envelope = new SerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    envelope.setOutputSoapObject(Request);      
envelope.addMapping(NAMESPACE, "SRV_Class",new SRV_Class().getClass());
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);


    try{

        //here is where i get the exception...
        androidHttpTransport.call(SOAP_ACTION, envelope);

        response = (SoapObject)envelope.getResponse();

        receivedData = identifier.retrieveFromSoap(response);
    }
    catch(Exception e){
        e.printStackTrace();
    }

}

и вот мой файл манифеста:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.myapp"
     android:versionCode="1"
     android:versionName="1.0" >

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

 <uses-sdk android:minSdkVersion="7" /> 

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>        
    <activity android:name=".ListOfClasses"></activity>            
</application>

Я знаю, что в Android localhost 10.0.2.2, но мое приложение связывает straigth с локальным сервером... должен ли я пересылать любые порты?

  • 0
    Не могли бы вы быть конкретным в отношении кода?
  • 0
    Вы можете подключиться к URL с помощью браузера телефона?
Показать ещё 4 комментария
Теги:
ksoap2

2 ответа

-1
Лучший ответ

хорошо, я узнал, в чем проблема. Очевидно, этот URL-адрес не был разрешен моим приложением, но это было связано с привязкой к веб-сайту, поэтому я свяжусь с администратором.

0

Ваш SOAP_ACTION должен быть примерно таким.

AppConsts.NAMESPACE =  "http://www.tempuri.us/"

usecaseString = THIS SHOULD BE YOUR METHOD NAME OF SERVICE.

String soapAction = AppConsts.NAMESPACE + usecaseString;

И ваш URL должен быть чем-то вроде этого.

NAMESPACE+/PROJECTNAME/SERVICE_NAME.asmx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню