1

.NET Webサービスに接続するために、AndroidプロジェクトのSOAPオブジェクトに上記のライブラリを使用しました。いくつかの変更を加え、ターゲットAPIを増減するまで、アプリケーションは正常に機能していました。SocketTimeoutExceptionをスローし始め、消えません。

Android Developer Tools Build:v21.0.0-519525を使用しています

どんな助けでも大歓迎です。

    private static final String NAMESPACE = "https://monitor.co.uk/";
    private static final String URL = "https://monitor.co.uk/WebService.asmx";

    private static final String GET_ID_METHOD = "GetId";
    private static final String GET_ID_SOAP_ACTION = "https://monitor.co.uk/GetId";
    public static String callGetIdWebService(String pass, String id, Context context)
    {
      String sRes = "";
      try 
      { 

        SoapObject request = new SoapObject(NAMESPACE, GET_ID_METHOD);

            PropertyInfo pi = new PropertyInfo();
            pi.setName("pass");
            pi.setValue(pass.toString());//"pass");// 
            pi.setType(pass.getClass());
            request.addProperty(pi);

            PropertyInfo pi2 = new PropertyInfo();
            pi2.setName("id");
            pi2.setValue(id.toString());
            pi2.setType(id.getClass());
            request.addProperty(pi2);

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(request);  
            envelope.implicitTypes = true;

            HttpTransportSE httpTransport = new HttpTransportSE(URL);

            httpTransport.debug = true;

            httpTransport.call(GET_ID_SOAP_ACTION, envelope);
            Object response = envelope.getResponse();

            httpTransport.debug = true;
            if(response.toString().equals("-1"))
            {
                sRes = "No records";
            }
            else
            {
                sRes = response.toString();
            }
      } 

      catch (Exception e) 
      {
        e.printStackTrace();
        Log.i("EXCEPTION...", e.toString());

      }
      return sRes;
    }

以下の猫のログ:

01-28 17:39:34.213: W/System.err(16378): java.net.SocketTimeoutException
01-28 17:39:34.218: W/System.err(16378):    at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:130)
01-28 17:39:34.218: W/System.err(16378):    at com.example.notificationmanager.CreateNotificationActivity.callGetIdWebService(CreateNotificationActivity.java:94)
01-28 17:39:34.218: W/System.err(16378):    at com.example.notificationmanager.CreateNotificationActivity.createNotification(CreateNotificationActivity.java:37)
01-28 17:39:34.218: W/System.err(16378):    at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:39:34.218: W/System.err(16378):    at java.lang.reflect.Method.invoke(Method.java:511)
01-28 17:39:34.218: W/System.err(16378):    at android.view.View$1.onClick(View.java:3095)
01-28 17:39:34.218: W/System.err(16378):    at android.view.View.performClick(View.java:3627)
01-28 17:39:34.223: W/System.err(16378):    at android.view.View$PerformClick.run(View.java:14329)
01-28 17:39:34.223: W/System.err(16378):    at android.os.Handler.handleCallback(Handler.java:605)
01-28 17:39:34.223: W/System.err(16378):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-28 17:39:34.223: W/System.err(16378):    at android.os.Looper.loop(Looper.java:137)
01-28 17:39:34.223: W/System.err(16378):    at android.app.ActivityThread.main(ActivityThread.java:4511)
01-28 17:39:34.223: W/System.err(16378):    at java.lang.reflect.Method.invokeNative(Native Method)
01-28 17:39:34.228: W/System.err(16378):    at java.lang.reflect.Method.invoke(Method.java:511)
01-28 17:39:34.228: W/System.err(16378):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
01-28 17:39:34.228: W/System.err(16378):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
01-28 17:39:34.228: W/System.err(16378):    at dalvik.system.NativeStart.main(Native Method)

Liaqat

4

2 に答える 2

4

アプリで別のいくつかの例外が発生し、他の質問に対する他の親切な人々がAsyncTaskの使用を提案した後、これを修正しました。AsyncTaskが機能するようになると、このエラーもなくなりました。したがって、この問題の原因がGUIアクティビティでのネットワーク操作と同じ問題であると想定すると、これで問題ないと思います。

あなたの援助に感謝します。Liaqat。

于 2013-03-04T11:52:25.180 に答える
2

興味深いことに、ターゲットAPIを増減し、マニフェストをいじりながら、インターネットの許可を得ていることを確認してください。

<uses-permission android:name="android.permission.INTERNET" />
于 2013-01-29T11:46:22.877 に答える