0

使用断点时出现此错误并进入捕获异常。

httpTransport.call(SOAP_ACTION, envelope);

是不是这种httpTransport联系不应该null

    public class MainActivity extends Activity {

TextView tv;

SoapObject request;

SoapSerializationEnvelope envelope;

HttpTransportSE androidHttpTransport;

Object result;

public String METHOD_NAME = "sum";

public String NAMESPACE = "http://ws.calculatorJava.org";

// private String SOAP_ACTION = NAMESPACE + METHOD_NAME;

public String SOAP_ACTION = "http://ws.calculatorJava.org/sum";

public static final String URL = "http://172.168.1.2:8888/CalculatotJava/services

    /Calculate.wsdl";


/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    tv = (TextView) findViewById(R.id.textView1);

    try {

        request = new SoapObject(NAMESPACE, METHOD_NAME);

        request.addProperty("i", 5);

        request.addProperty("j", 15);

        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.dotNet = true;

        envelope.setOutputSoapObject(request);

        androidHttpTransport = new HttpTransportSE(URL);

        Toast.makeText(getBaseContext(), "GET", Toast.LENGTH_LONG).show();

        androidHttpTransport.call(SOAP_ACTION, envelope);

        result = envelope.getResponse();

        Toast.makeText(getBaseContext(),

                "  Result " + "\n" + result.toString(), 

                        Toast.LENGTH_SHORT)

                .show();

        // System.out.println("Result : " + result.toString());

        tv.setText("Addition : " + result.toString());

    } catch (Exception E) {

        E.printStackTrace();

        tv.setText("ERROR  " + "\n" + E.getClass().getName() + ":"

                + E.getMessage());

    }

}

 }
4

2 回答 2

0

如果您遇到网络主异常,请记住始终在 Android Async Task 中执行与网络相关的任务,然后在主线程中调用 Async Task

于 2013-04-07T17:47:51.810 回答
0

androidHttpTransport.call(SOAP_ACTION, envelope);可能失败了,因为您在主 UI 线程上调用它。尝试将清单中的 SDK 版本降低到 8/9,或者将整个 soap 请求代码放在 AsyncTask 或不同的线程中。

于 2013-03-28T10:20:02.663 回答