使用Soap协议时收到java.io.IOException错误

时间:2014-06-24 12:09:10

标签: android soap

我做了一个客户端(android)-server(PHP)系统,客户端只是在服务器中登录(多次,它不是实际的登录)。当我点击登录按钮,一切都很酷和正确,将收到欢迎消息,但当我尝试再次单击登录按钮时,我看到“java.io.EOFEception”错误,当我尝试单击按钮为第三时间,它只是再次正确,之后再次出现错误等...,我认为问题在于我的连接尚未关闭。我该怎么办 ?这是我的登录按钮代码:

      logi.setOnClickListener(new View.OnClickListener() {
           public void onClick(View v) {

                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME_2);

               //SoapObject 
               request.addProperty("email", "xxxx@yahoo.com");
               request.addProperty("password", "1234");
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

              envelope.setOutputSoapObject(request);

              HttpTransportSE httpTransport = new HttpTransportSE(URL);

              try
              {
                httpTransport.call(SOAP_ACTION_2, envelope);
                Object response = envelope.getResponse();
                    Toast.makeText(getBaseContext(),response.toString(),Toast.LENGTH_LONG).show();

            }

            catch (Exception exception)
            {
                 Toast.makeText(getBaseContext(),exception.toString(),Toast.LENGTH_LONG).show();
            }

        }
    });

1 个答案:

答案 0 :(得分:0)

我不相信你有连接问题。我相信这可能是你主线程上的一个问题。无论如何,您需要将您的请求放在AsyncTask中。这允许android在新的后台线程上进行调用,这是Honeycomb之后所有HTTP调用所必需的。我相信这个链接提供了一个很好的实现示例。 How can I make a ksoap2 call in async task?