0

今、私はSOAPメソッドによってアンドロイドでドットネットWebサービスを消費しています.これは私が消費しようとしている正確なWebサービスです.

「http://54.251.60.177/TMSOrdersService/TMSDetails.asmx」この Web サービスは、実際には xml 形式のデータを取得しています。

この Web サービスの入力値は次のとおりです。

開始日: 2012 年 1 月 1 日

日付: 2012 年 7 月 7 日

これらの入力値を edittext ボックスに入力した後、「invoke」ボタンをクリックすると空白の画面が表示され、logcat にも何も見つかりません..

ログキャット

09-11 11:11:41.314: D/AndroidRuntime(442): Shutting down VM
09-11 11:11:41.323: D/dalvikvm(442): Debugger has detached; object registry had 1 entries
09-11 11:11:41.374: I/AndroidRuntime(442): NOTE: attach of thread 'Binder Thread #3' failed
09-11 11:11:41.844: D/AndroidRuntime(450): >>>>>>>>>>>>>> AndroidRuntime START      <<<<<<<<<<<<<<
09-11 11:11:41.844: D/AndroidRuntime(450): CheckJNI is ON
09-11 11:11:41.974: D/AndroidRuntime(450): --- registering native functions ---
09-11 11:11:42.034: I/jdwp(450): Ignoring second debugger -- accepting and dropping
09-11 11:11:42.524: I/ActivityManager(75): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.test_webservice/.Test_webservice }
09-11 11:11:42.584: D/AndroidRuntime(450): Shutting down VM
09-11 11:11:42.604: D/dalvikvm(450): Debugger has detached; object registry had 1 entries
09-11 11:11:42.714: I/AndroidRuntime(450): NOTE: attach of thread 'Binder Thread #3' failed
09-11 11:11:48.973: D/dalvikvm(178): GC_EXPLICIT freed 438 objects / 20576 bytes in 100ms

提案してください?

4

2 に答える 2

2

ksoap2 を使用しているかどうかはわかりませんが、この関数を作成してテストしたところ、正常に動作し、値を取得しています。それが役に立てば幸い:

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

public void getTMSChart(String FromDate, String ToDate)
{
    System.setProperty("http.keepAlive", "false");        
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);        
    envelope.dotNet = true;
    String namespace = "http://tempuri.org/";
    String url = "http://54.251.60.177/TMSOrdersService/TMSDetails.asmx";
    String method = "GetTMSChart";

    SoapObject request = new SoapObject(namespace, method);        
    request.addProperty("FromDate", FromDate);               
    request.addProperty("ToDate", ToDate);

    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(url);

    try {
        androidHttpTransport.call(namespace + method, envelope);
        SoapObject result = (SoapObject) envelope.bodyIn;
        SoapObject root =  (SoapObject) ((SoapObject)(result).getProperty(0)).getProperty("NewDataSet");
        int tablesCount = root.getPropertyCount();
        for (int i = 0; i < tablesCount; i++)
        {
            SoapObject table = (SoapObject) root.getProperty(i);
            int propertyCount = table.getPropertyCount();
            for (int j = 0; j < propertyCount; j++)
            {           
                String orderNo =  table.getPropertyAsString("Order_No");
                int freightRate = Integer.parseInt(table.getPropertyAsString("Freight_Rate"));
                int marginPercent = Integer.parseInt(table.getPropertyAsString("Margin_Percent"));
                // whatever you do with these values
            }                   
        }
    }   
    catch (Exception e) {

    }   
}
于 2012-09-11T07:13:59.897 に答える
0

実際、Web サービスは、送信されたすべての日付に対して有効な出力を返していません。試行錯誤により、Web サービスは有効な出力を返しました。

FromDate: 01/09/2012

現在まで: 2012 年 5 月 9 日

編集:

上記の値を使用して、次のxmlを取得できます:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <soap:Body>
  <GetTMSChartResponse xmlns="http://tempuri.org/">
     <GetTMSChartResult>
        <NewDataSet xmlns="">
           <Table>
              <Order_No>OR00000004</Order_No>
              <Freight_Rate>225</Freight_Rate>
              <Margin_Percent>87</Margin_Percent>
           </Table>
        </NewDataSet>
     </GetTMSChartResult>
  </GetTMSChartResponse>

于 2012-09-11T06:17:21.393 に答える