我在使用此代码时获得Exception
,但它适用于其他链接。
public class WebserviceCall {
static WebserviceCall com;
String namespace = "http://tempuri.org/";
private String url = "http://sicsglobal.co.in/T-Drive/WebService_TDrive.asmx";
String SOAP_ACTION;
SoapObject request = null, objMessages = null;
SoapSerializationEnvelope envelope;
AndroidHttpTransport androidHttpTransport;
public static WebserviceCall getInstance() {
if (com == null)
return new WebserviceCall();
else
return com;
}
protected void SetEnvelope() {
try {
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
androidHttpTransport = new AndroidHttpTransport(url);
androidHttpTransport.debug = true;
} catch (Exception e) {
System.out.println("Soap Exception SetEnvelope (); \n"
+ e.toString());
}
}
public String getConvertedWeight(String MethodName, String thisUsername,
String thisPassword) {
try {
SOAP_ACTION = namespace + MethodName;
request = new SoapObject(namespace, MethodName);
request.addProperty("userId", "" + thisUsername.trim());
request.addProperty("password", thisPassword.trim());
SetEnvelope();
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
String result = envelope.getResponse().toString();
return result;
} catch (Exception e) {
return e.toString();
}
} catch (Exception e) {
// TODO: handle exception
return e.toString();
}
}
}
答案 0 :(得分:1)
您应该准备肥皂请求,然后您可以执行正确的http请求,因为您要连接的Web服务是肥皂服务,为此您可以使用ksoap2-android来准备肥皂请求
答案 1 :(得分:0)
尝试使用Asynctask。
private class Task extends AsyncTask<String, Void, String> {
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... urls) {
//your code here
return response;
}
@Override
protected void onPostExecute(String response) {
//treat the response here
}
}
查看here以获取有关它的更多信息。
如果这不起作用,请发布您的logcat。