0

我想在 android 4.0.3 中解析一个 SOAP,我尝试使用 SOAP 解析它的正常方式在 2.3.6[Device] 中运行良好,但在 4.0.3[emulator] 中运行良好。请提供您对此的专业知识。我已添加以下代码供您参考。谢谢。

String CallWebService(String url, String soapAction, String envelope) {
    final DefaultHttpClient httpClient = new DefaultHttpClient();
    // request parameters
    HttpParams params = httpClient.getParams();
    HttpConnectionParams.setConnectionTimeout(params, 10000);
    HttpConnectionParams.setSoTimeout(params, 15000);
    // set parameter
    HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), true);
    // POST the envelope
    HttpPost httppost = new HttpPost(url);
    // add headers
    httppost.setHeader("soapaction", soapAction);
    httppost.setHeader("Content-Type", "text/xml; charset=utf-8");
    String responseString = "";
    try {
        // the entity holds the request
        HttpEntity entity = new StringEntity(envelope);
        httppost.setEntity(entity);
        // Response handler
        ResponseHandler<String> rh = new ResponseHandler<String>() {
            // invoked when client receives response
            public String handleResponse(HttpResponse response)
                    throws ClientProtocolException, IOException {
                // get response entity
                Log.v(TAG, "01");
                HttpEntity entity = response.getEntity();
                // read the response as byte array
                StringBuffer out = new StringBuffer();
                byte[] b = EntityUtils.toByteArray(entity);
                // write the response byte array to a string buffer
                out.append(new String(b, 0, b.length));
                return out.toString();
            }
        };
        responseString = httpClient.execute(httppost, rh);
    } catch (Exception e) {
        Log.v("exception", e.toString());
    }
    // close the connection
    httpClient.getConnectionManager().shutdown();
    return responseString;
}

DocumentBuilder解析不生成,这是代码

    @SuppressWarnings("unused")
    public final static Document XMLfromString(String xml) {

        Document doc = null;


        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();

            InputSource is = new InputSource();
            is.setCharacterStream(new StringReader(xml));
            doc = db.parse(is);

        } catch (ParserConfigurationException e) {
            System.out.println("XML parse error: " + e.getMessage());
            return null;
        } catch (SAXException e) {
            System.out.println("Wrong XML file structure: " + e.getMessage());
            return null;
        } catch (IOException e) {
            System.out.println("I/O exeption: " + e.getMessage());
            return null;
        }

        return doc;

    }
4

0 回答 0