package com.venkat.pack;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class SOAPClientActivity extends Activity {
private static final String SOAP_ACTION = "Z_CUSTOMER_LOOKUP";
private static final String METHOD_NAME = "Z_CUSTOMER_LOOKUP";
private static final String NAMESPACE = "urn:sap-com:document:sap:soap:functions:mc-style";
private static final String URL = "http://*********:8000/sap/bc/srt/wsdl/srvc_14DAE9C8D79F1EE193CF0AB8FEE64345/wsdl11/allinone/ws_policy/document?sap-client=*****"; //this is my wsdl url.
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btTest = (Button) this.findViewById(R.id.btTest);
btTest.setOnClickListener(btTestListener);
//whenever click the button
}
public Button.OnClickListener btTestListener = new Button.OnClickListener() {
public void onClick(View v) {
try {
// Create SOAP request
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
// Get response from envelope
Object result = envelope.getResponse();
// Display result
Toast.makeText(SOAPClientActivity.this, result.toString(),
50000).show();
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
我在哪里可以在上面的代码中添加用户名和密码。当我运行程序时,我在eclipse:02-17 18:33:35.254: WARN/System.err(608): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <{http://schemas.xmlsoap.org/wsdl/}wsdl:definitions targetNamespace='urn:sap-com:document:sap:soap:functions:mc-style'>@1:686 in java.io.InputStreamReader@40554888)
答案 0 :(得分:0)
SAP允许将参数sap-user和sap-password作为URL参数附加(与sap-client一样)。试试吧,它应该解决问题。
答案 1 :(得分:0)
在您的情况下,您需要使用基本身份验证调用SAP Webservice。使用HttpTransportBasicAuth
的{{1}}内容,请参阅下面的示例,了解如何致电HttpTransportSE
HttpTransportBasicAuth
告诉我们是否有效或需要更多信息。