KSOAPベースのWebサービスで「日付」を解析する必要があるアプリを開発しています。サーバーで「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 Classを試しましMarshalDate 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);
}
}
MarshalDate
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 --faultcode:'SOAP-ENV:Server' faultstring:'モジュール'MobileApp.exe'のアドレス00405818でのアクセス違反。アドレス69570A03の読み取り'faultactor:''詳細:null