0

String 型を返す WCF メソッドがあります。

これは私の出力です

{"Table1" : [{"TableName" : "LoadDistributor","Description" : "Distributor ","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName " : "LoadPrice","Description" : "Price","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName" : "LoadProduct","Description" : "商品 ","MandatoryFlag" : "1","ステータス" : "","優先度" : "0"},{"TableName" : "LoadTradeSchemeDetail","説明" : "TradeSchemeDeta","MandatoryFlag" : "1","ステータス" :"","Priority" : "0"},{"TableName" : "RD.AlternativeProductDetail","Description" : "AltProdutDetail","MandatoryFlag" : "0","Status" : "","Priority" : "0"},{"TableName" : "RD.AlternativeProductHeader","Description" : "AltProdutHeader","MandatoryFlag" : "0","Status" : "","Priority" : "0"},{" TableName" : "RD.BatchPriceDetail","Description" : "BatchPrice ","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName" : "RD.Executive "、"説明" : "Executive ","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName" : "RD.Route","Description" : "Route ","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName" : "RD.vwRetailer","Description" : "小売業者","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName" : "RD.vwRouteDetail","Description" : "RouteDetail ","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"テーブル名" : "XA.vwProductType","Description" : "Brand Product C","MandatoryFlag" : "1","Status" : "","Priority" : "0"},{"TableName" : "XA.vwTown","Description" : "町","MandatoryFlag" : "1","ステータス" : "","優先度" : "0"}]}

これが私の石鹸処理方法です

    // ksoap2 calling wcf
public SoapPrimitive soapPrimitive(String METHOD_NAME, String SOAP_ACTION, String NAMESPACE, String URL) throws IOException, XmlPullParserException {
    SoapPrimitive responses = null;
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); //set up request
    request.addProperty("strExec", "7067");
    request.addProperty("strBusinessUnit", "HEMA");
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); //put all required data into a soap envelope
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);  
    AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);  
    httpTransport.debug = true; 

    try{

        Log.w("Log_cat" ,"*********" + envelope.toString());
        httpTransport.call(SOAP_ACTION, envelope);
        Log.w("log_tag", " ===========" +SOAP_ACTION );

        // Object result = (Object)envelope.getResponse();
        // JSONArray jArray = new JSONArray(result.toString());
        // Log.w("log_tag", " ===*********==" +jArray );

         responses = (SoapPrimitive)envelope.getResponse();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

   // Object response= envelope.getResponse();
    return responses;
 }

私のC#メソッドは、JSON(文字列として)で文字列を返します。

リストまたは配列でのみテーブル名を取得する方法。助けてください。何が問題なのですか?

4

1 に答える 1

3

SOAP と JSON の違いを理解していますか? kSOAP は、SOAP リクエストを期待して SOAP レスポンスを返すサービスを処理するためのものです。したがって、JSON を含む単一の文字列要素を返す SOAP サービスがない限り、kSoap は必要ありません (そして使用できません)。JSON を返す REST サービスがある場合は、simpleDefaultHttpClientを使用し、例としてここで説明しHttpPostます。JSON を常に使用している場合は、前の質問にも答えます。

于 2011-07-07T09:36:40.097 に答える