httpsransportse.call()中的android ksoap错误;

时间:2012-07-05 07:33:15

标签: java android ksoap httptransportse

请任何人帮我解决这个错误......这是Java代码:

public class MainActivity extends Activity implements Serializable {

    private static final String Url = "http://c.knotbiz.com/knotbizjob.asmx";
    private static final String Namespace = "http://tempuri.org/";
    private static final String methodName = "UploadFile";
    private static final String Soap_Action = "http://tempuri.org/UploadFile";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        handlerobj.post(runnableobj);    
    }

    private Handler handlerobj = new Handler();

    private Runnable runnableobj = new Runnable() {

        public void run() {
            // TODO Auto-generated method stub

            Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
                    R.drawable.ic_launcher);
            ByteArrayOutputStream bao = new ByteArrayOutputStream();
            bitmapOrg.compress(Bitmap.CompressFormat.PNG, 90, bao);
            byte[] ba = bao.toByteArray();

            Log.v("Base64>>>>>>>",""+ Base64.encodeBase64(ba) );

            long user_id = 3;

            boolean Is_Created = false,Is_Overwrite = true,Is_resize = true;
            String FileName = "Hishamdocument";

            String FileType = "png";

            //Base64.encodeBase64(ba)

            SoapObject req = new SoapObject(Namespace, methodName);

            req.addProperty("UserId", user_id);

            req.addProperty("File", FileName);

            req.addProperty("FileName", FileName);

            req.addProperty("FileType", FileType);

            req.addProperty("isCreated", Is_Created);

            req.addProperty("Abspath", "");

            req.addProperty("FullPath", "");

            req.addProperty("IsOverwrite", Is_Overwrite);

            req.addProperty("IsResize", Is_resize);

            req.addProperty("Id", user_id);

            req.addProperty("SendEmailId", user_id);


            Log.v("Request>>>>>>>", req.toString());


            //SoapEnvelope              

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

            envelope.dotNet = true;             

            envelope.setOutputSoapObject(req);

            try{
            Log.v("envelope body in", envelope.bodyIn.toString());

            Log.v("envelope", envelope.toString());


            Log.v("envelope body Out", envelope.bodyOut.toString());

            }

            catch(Exception e) {

                Log.e("errror", ""+e);

            }               

            //httpTransportSe

            try{
            HttpTransportSE httpreq = new HttpTransportSE(Url);
            httpreq.debug = true;

            Log.v("inside httpreq"," envelope.bodyOut.toString()");

            httpreq.call(Soap_Action, envelope);


            Log.v("inside httpreq"," envelope.bodyOut.toString()");

            Log.v("After call httpreq",httpreq.responseDump.toString());



            }
            catch(Exception e){
                e.printStackTrace();
            }
        }
    };

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

抛出空指针异常...我不知道为什么抛出它...我怎样才能得到正确的响应?请任何1帮助我?...提前致谢。

1 个答案:

答案 0 :(得分:0)

移动

        Log.v("envelope body in", envelope.bodyIn.toString());
        Log.v("envelope", envelope.toString());
        Log.v("envelope body Out", envelope.bodyOut.toString());

httpreq.call(Soap_Action, envelope);

在发送请求之前,您无法获取数据

信封bodyIn / Out初始为null,这就是你获得NPE的原因