-2

これは私の SOAP Web サービスです。エラーが発生しました。これは私のコードです。Androidで文字列を解析する方法を教えてください。int string int int string string よろしくお願いします。

public boolean callwebservice() {

    boolean result = false;
    int patid = 1;
    String xml = "";

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("PatientId", patid);

    request.addProperty("AppointMentDate", appdate);
    request.addProperty("TimeFrom", apptimeto);
    request.addProperty("TimeTo", appfrom);
    request.addProperty("ReasonForAppointMent", appreason);
    request.addProperty("strxml", xml);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);
    HttpTransportSE httpTransport = new HttpTransportSE(URL);
    httpTransport.debug = true;
    try {

        httpTransport.call(SOAP_ACTION, envelope);
        httpTransport
                .setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
        // SoapObject response = (SoapObject) envelope.bodyIn;
        SoapPrimitive response = (SoapPrimitive) envelope.getResponse();

        System.out.println("myApp" + response.toString());
        System.out.println("response" + response);

        if (response.toString().equalsIgnoreCase("false")) {
            result = true;

        }

    } catch (SocketException ex) {
        System.out.println("Error : " + "Error on soapPrimitiveData() "
                + ex.getMessage());
        ex.printStackTrace();
    } catch (Exception e) {
        System.out.println("Error : " + "Error on soapPrimitiveData() "
                + e.getMessage());
        e.printStackTrace();
    }
    return result;
4

1 に答える 1

0

最初に ksoap2 ライブラリをプロジェクトにインポートして、これを試してください。ここにリンクがあります

 public class MainActivity extends Activity {
private final String NAMESPACE = "http://www.webserviceX.NET/";
private final String URL = "http://www.webservicex.net/CurrencyConvertor.asmx";
private final String SOAP_ACTION = "http://www.webserviceX.NET/ConversionRate";
private final String METHOD_NAME = "ConversionRate";
SoapObject request;
String weight;
String fromUnit;
String toUnit;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    request = new SoapObject(NAMESPACE, METHOD_NAME); 

    weight = "USD";
    fromUnit = "INR";
    toUnit = "Kilograms";

    PropertyInfo weightProp =new PropertyInfo();
    weightProp.setName("FromCurrency");
    weightProp.setValue(weight);
    weightProp.setType(String.class);
    request.addProperty(weightProp);

    PropertyInfo fromProp =new PropertyInfo();
    fromProp.setName("ToCurrency");
    fromProp.setValue(fromUnit);
    fromProp.setType(String.class);
    request.addProperty(fromProp);



    //calling the AsyncTask
    new Task().execute();


}
class Task extends AsyncTask<Void, Void, Void>{
    SoapPrimitive response;
    @Override
    protected Void doInBackground(Void... params) {
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

        try {
            androidHttpTransport.call(SOAP_ACTION, envelope);
            response = (SoapPrimitive)envelope.getResponse();
            Log.i("myApp", ""+response);



        } catch (Exception e) {
            e.printStackTrace();
        }
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        TextView tv = new TextView(getApplicationContext());
        tv.setText("1"+weight+" equals "+response.toString()+ " "+fromUnit);
        tv.setTextSize(50);
        setContentView(tv);
        super.onPostExecute(result);
    }

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

于 2013-05-13T10:30:49.003 に答える