我正在开发一个应用程序,我需要在 KSOAP 基础网络服务中解析“日期”,我需要在服务器上以“MM/dd/yyyy”的格式传递日期,所以我使用 SimepldateFormate 并将日期字符串传递给date
该类,但在这里出了点问题,让我犯了错误
错误:
08-13 14:45:20.031: ERROR/KsoapDemoActivity(562): Exception=>java.text.ParseException: Unparseable date: "08/01/2011"
KSoap
我也有类似的日期类请求pi1.setType(Date.class);
但没有得到解决。我也尝试过使用 make ClassMarshalDate mdouble = new MarshalDate();
但没有得到解决方案
你能帮我解决这个问题吗
这是我的代码
private void InsertClientDetailForMobApp() {
// TODO Auto-generated method stub
try {
String NAMESPACE = "urn:MobileApplicationIntf-IMobileApplication";// "http://tempuri.org/";
String METHOD_NAME = "InsertClientDetailForMobApp";
String SOAP_ACTION = "urn:MobileApplicationIntf-IMobileApplication#InsertClientDetailForMobApp";
String URL = ("URL");//
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo pi1 = new PropertyInfo();
pi1.setName("asfirstname");
pi1.setValue("Nikunj");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi2 = new PropertyInfo();
pi1.setName("asLastName");
pi1.setValue("patel");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi3 = new PropertyInfo();
pi1.setName("asNationalID");
pi1.setValue("25125514");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi4 = new PropertyInfo();
pi1.setName("asCountryissued");
pi1.setValue("asdasdasd");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi5 = new PropertyInfo();
pi1.setName("asLicenceNo");
pi1.setValue("asdasd");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi6 = new PropertyInfo();
pi1.setName("asPassportNo");
pi1.setValue("12512513221321");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi7 = new PropertyInfo();
pi1.setName("asGender");
pi1.setValue("M");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi8 = new PropertyInfo();
pi1.setName("asAddress1");
pi1.setValue("Indasdas asd as aia");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi9 = new PropertyInfo();
pi1.setName("asAddress2");
pi1.setValue("asdas asd asdasdas ");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi10 = new PropertyInfo();
pi1.setName("asCountry");
pi1.setValue("India");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi11 = new PropertyInfo();
pi1.setName("asCity");
pi1.setValue("Ahmedabad");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi12 = new PropertyInfo();
pi1.setName("asProvince");
pi1.setValue("Gujarat");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi13 = new PropertyInfo();
pi1.setName("asZip");
pi1.setValue("356256");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi14 = new PropertyInfo();
pi1.setName("asDayTelephone");
pi1.setValue("15165165565456");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi15 = new PropertyInfo();
pi1.setName("asEveTelephone");
pi1.setValue("5545654654");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi16 = new PropertyInfo();
pi1.setName("asFAX");
pi1.setValue("54145615");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi17 = new PropertyInfo();
pi1.setName("asEmail");
pi1.setValue("nkpatel@asd-infotech.com");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi18 = new PropertyInfo();
pi1.setName("asUserName");
pi1.setValue("Nik123");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi19 = new PropertyInfo();
pi1.setName("asPassword");
pi1.setValue("India");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi20 = new PropertyInfo();
pi1.setName("asLanguege");
pi1.setValue("English");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi21 = new PropertyInfo();
pi1.setName("asQuestion1");
pi1.setValue("Question1");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi22 = new PropertyInfo();
pi1.setName("asAnswer1");
pi1.setValue("Nothing1");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi23 = new PropertyInfo();
pi1.setName("asQuestion2");
pi1.setValue("what1");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi24 = new PropertyInfo();
pi1.setName("asSSN");
pi1.setValue("123456");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi25 = new PropertyInfo();
pi1.setName("asAnswer2");
pi1.setValue("Nothing2");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi26 = new PropertyInfo();
pi1.setName("asPrimaryCurrency");
pi1.setValue("INR");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi27 = new PropertyInfo();
pi1.setName("asSecondaryCurrency");
pi1.setValue("USD");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi28 = new PropertyInfo();
pi1.setName("asAgentID");
pi1.setValue("456");
pi1.setType(String.class);
Request.addProperty(pi1);
PropertyInfo pi29 = new PropertyInfo();
pi1.setName("asBranchCode");
pi1.setValue("Tcom India");
pi1.setType(String.class);
Request.addProperty(pi1);
String str_date = "08/01/2011";
// yyyy-MM-dd'T'HH:mm:ss
DateFormat formatter;
Date date;
//formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
formatter = new SimpleDateFormat("MM-dd-yyyy");
date = (Date) formatter.parse(str_date);
PropertyInfo pi30 = new PropertyInfo();
pi1.setName("dtDOB");
pi1.setValue(date);
pi1.setType(Date.class);
Request.addProperty(pi1);
/*
* Call the web service and retrieve result ... how luvly <3
*/
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(Request);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
URL);
MarshalDate mdouble = new MarshalDate();
mdouble.register(envelope);
androidHttpTransport.call(SOAP_ACTION, envelope);
Log.i("TAG", "soapResponse=>" + envelope.getResponse());
} catch (Exception e) {
soapResponseObject = null;
Log.e(TAG, "niraliwebservice() Exception=>" + e);
}
}
元帅日期
package com.KsoapDemo;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.kobjects.isodate.IsoDate;
import org.ksoap2.serialization.Marshal;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;
public class MarshalDate implements Marshal
{
public Object readInstance(XmlPullParser parser, String namespace, String name,
PropertyInfo expected) throws IOException, XmlPullParserException {
return IsoDate.stringToDate(parser.nextText(), IsoDate.DATE_TIME);
}
public void register(SoapSerializationEnvelope cm) {
cm.addMapping(cm.xsd, "DateTime", Date.class, this);
}
public void writeInstance(XmlSerializer writer, Object obj) throws IOException {
writer.text(IsoDate.dateToString((Date) obj, IsoDate.DATE_TIME));
}
}
更新:
我已将“08-01-2012”更改为“08/01/2012”但现在它引发了我的错误
SoapFault - 故障代码:“SOAP-ENV:Server”故障字符串:“模块“MobileApp.exe”中地址 00405818 的访问冲突。读取地址 69570A03' faultactor: '' detail: null