XMLPULLPARSEREXCEPTION...in KSOAP2
Posted
by aka47
on Stack Overflow
See other posts from Stack Overflow
or by aka47
Published on 2010-05-28T03:59:12Z
Indexed on
2010/05/28
4:01 UTC
Read the original article
Hit count: 919
web-services
|blackberry
iam using KSOAP2 for web services. my client is BlackBerry Phone and Server is KeyRingLabs.com. i am using php page for connection...i have taken this code form a Forum.and modified it according to my requirements...but I am having XMLPULLPARSER EXCEPTION...can any body help???
here is my code....
import net.rim.device.api.ui.; import net.rim.device.api.ui.component.; import net.rim.device.api.ui.container.; import net.rim.device.api.system.;
import java.util.; import org.ksoap2.; import org.ksoap2.serialization.; import org.ksoap2.transport.; import java.io.IOException;
import org.ksoap2.SoapEnvelope; import org.ksoap2.SoapFault; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransport; import org.xmlpull.v1.XmlPullParserException;
final class StockQuoteDemo extends UiApplication { public static void main (String[] args) { StockQuoteDemo theApp = new StockQuoteDemo (); theApp.enterEventDispatcher (); }
public StockQuoteDemo () { pushScreen (new StockQuoteScreen ()); //doSOAP(); }
final class StockQuoteScreen extends MainScreen { public static final String action = "http://keyringlabs.com/Login"; public static final String namespaceRoot = "bbpointofsale.com"; //public static final String webroot = "http://192.168.1.2/bbpointofsale.com/"; public static final String webroot = "http://192.168.0.35/"; //public static final String webroot = "http://www.bbpointofsale.com"; public String errorMessage; public String key; public String transactionID; private HttpTransport transport; private SoapSerializationEnvelope envelope;
public StockQuoteScreen () { //transport = new HttpTransport(webroot + "bb/service/index.php"); transport = new HttpTransport(webroot+"Disk/rashid11/index4.php"); transport.debug = true; envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); key = null; envelope.encodingStyle = SoapSerializationEnvelope.XSD1999; ProcessLogin("[email protected]","123456"); //Dialog.alert("GEN 1"); //Dialog.alert("Warr Gai Vai!!!");
}
public boolean onClose () { Dialog.alert ("Goodbye!"); System.exit (0); return true; }
public boolean ProcessLogin(String email, String password) { System.err.println("Starting The Process");
errorMessage = "";
String namespace = "urn:" + namespaceRoot + ":login"; //System.err.println("LINK:"+namespace); // SoapObject message = new SoapObject(namespace, "login"); SoapObject message = new SoapObject(namespaceRoot, "login");
message.addProperty("email", email); message.addProperty("password", password);
envelope.bodyOut = message;
// System.err.println("KSOAP:"+ envelope.toString());
//String soapAction = namespace + "#login"; String soapAction = "http://bbpointofsale.com/login"; // System.err.println("Action : "+soapAction);
try { //transport.setXmlVersionTag(""); transport.call(soapAction, envelope);
} catch (IOException e) { e.printStackTrace(); System.out.println("error: "+e.getMessage()); errorMessage = e.getMessage(); System.out.println("response1: "+transport.responseDump); return false; } catch (XmlPullParserException e) { e.printStackTrace();
errorMessage = e.getMessage();
System.out.println("request2: "+transport.requestDump);
System.out.println("response2: "+transport.responseDump);
return false;
}
try {
SoapObject result = (SoapObject) ((SoapObject)envelope.getResponse()).getProperty(0);
key = hackToGetResponse("serviceToken", result.toString());
if (key.length() > 0) {
System.out.println("KEY:" + key);
return true;
} else {
}
} catch (SoapFault e) {
errorMessage = e.getMessage();
System.out.println("response3: "+transport.responseDump);
return false;
} catch (Exception e) { errorMessage = e.getMessage(); System.err.println("response4: "+transport.responseDump); return false; }
return false;
}
public String hackToGetResponse(String key, String response) { System.out.println("hackToGetResponse:" + response); String start = "anyType{key=" + key + "; value="; String end = "; }";
if (response.indexOf(start) == -1 || response.indexOf(end) == -1) return "";
System.out.println("hackToGetResponse:" + "response.substring(0, " + response.indexOf(start) + ").substring(0, " + response.indexOf(end) + ");");
response = response.substring(response.indexOf(start) + start.length());
response = response.substring(0, response.indexOf(end));
if (response.indexOf("anyType{}") != -1) return "";
return response; } }
}
//******************PHP FILE************************
$server = new SoapServer(null, array('uri' => "urn:keyringlabs.com")); //$server = new SoapServer(null, array('uri' => "urn: bbpointofsale.com")); $server->addFunction("login");
//$email='[email protected]'; //$pass='123456';
function login($email, $pass) {
if (strlen($email) == 0) {
return Array('serviceToken' => '');
} elseif (strlen($pass) == 0) {
return Array('serviceToken' => '');
} else {
$objMerchant = Merchant::LoadByEmailPassword($email, $pass);
if ($objMerchant == null || $objMerchant->Id <==1) {
return Array('serviceToken' => '');
} else {
$key = uniqid();
$objSess = new Merchantsessions();
$objSess->MerchantID = $objMerchant->Id;
$objSess->ServiceToken = $key;
$objSess->Save();
}
}
$result = Array('serviceToken' => $key);
//print $result;
return $result;
}
?>
///****************************************
is there any need of an XML page or something..to run it perfectly...please help
thank you for your time!
© Stack Overflow or respective owner