ASMX Webサービスに日付を渡す
-
02-01-2020 - |
質問
ASMX Webサービスを使用して、Androidデバイスを介してC#に書き込みます。
接続を行い、一部のWebメソッドで入力パラメータのような整数または文字列が必要な場合は、すべてが大切に機能しますが、問題はWebメソッドが必要な場合は、日付を多くの形式で送信しようとしますが、常に答えを取得する問題があります。。
日付オブジェクトを送信する必要があります。Webサービスビューの日付が他のもののようなものになる可能性がありますか?
Webサービスを使用した「通信」の方法:
public void connectSOAP()
{
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
String dateStr = "04/05/2010";
Date dateObj=null;
SimpleDateFormat curFormater = new SimpleDateFormat("dd/mmm/yyyy");
try
{
dateObj = curFormater.parse(dateStr);
}
catch (java.text.ParseException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
request.addProperty("dtFrom",dateObj);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try
{
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
if (envelope.getResponse() != null)
{
if (envelope.bodyIn instanceof SoapFault)
{
String str = ((SoapFault) envelope.bodyIn).faultstring;
Log.i("", str);
}
else
{
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
Log.d("WS", String.valueOf(resultsRequestSOAP));
}
};
}
catch (Exception e)
{
Log.d("WS","sss");
}
}
.
Webメソッドを変更したとき(それがうまくいました)、ログでレスポンスを取得しますが、このようにしてこのようにしてください。ログでキャッチ( "SSS")を取得します。: AndroidhttpTransport.call(SOAP_Action、envelope);
しかし、私は私がセットした捕獲された捕獲された簿にそれについて何も見つけません...
解決
私のためにこれは、WebServiceに与えるDateObjが解析できないようなように見えます。
androidHttpTransport.call(SOAP_ACTION, envelope);
.
しかしあなたのフォーマッターにこのフォーマットがあるので:
SimpleDateFormat curFormater = new SimpleDateFormat("dd/mmm/yyyy");
.
(3!)「MMM」がエラーを引き起こしているのか?私はこれがe.のようなものを作り出すことを確信しています。2月などの「2月」(例えば "11/2月/ 2014"):
何かを試してみてください:
SimpleDateFormat curFormater = new SimpleDateFormat("dd/mm/yyyy");
.
または
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
.
BTW、ローカライゼーションと相互運用性の問題を回避するために、そのオブジェクトをWebサービスに与えるために文字列に正確にフォーマットされたDateTimeオブジェクトを使用します。何度も私はe.の間の相互運用性によって問題がありました。.asmx WebサービスとJ2EE Webサービス(例えば、DateTimeの範囲はJ2EEと.NETの範囲は同じではありません。