代号一个网络服务肥皂调用不起作用

codename one web services soap call not working

我想在单击登录按钮时使用基于 SOAP 的 Web 服务。 我的代码如下

loginButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        Log.p(" CaterId : "+catererId.getText());
        Log.p(" Username : "+loginId.getText());
        Log.p(" Password : "+password.getText());

        final String InputParameter = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tem=\"http://tempuri.org/\">" 
                                       +"   <soap:Header/>" 
                                       +"   <soap:Body>" 
                                       +"      <tem:AuthenticateSupervisor>" 
                                       +"         <tem:username>TestAbhi</tem:username>" 
                                       +"         <tem:password>TestAbhi</tem:password>" 
                                       +"         <tem:caterer>calihanint</tem:caterer>" 
                                       +"      </tem:AuthenticateSupervisor>" 
                                       +"   </soap:Body>" 
                                       +"</soap:Envelope>";
        ConnectionRequest r= new ConnectionRequest() {

            @Override
            protected void buildRequestBody(OutputStream os) throws IOException {
                os.write(InputParameter.getBytes("UTF-8"));
            }

            @Override
            protected void postResponse() {
                //super.postResponse();
            }

            @Override
            protected void readResponse(InputStream input) throws IOException {
                //super.readResponse(input);
                XMLParser parser = new XMLParser();
                Element elem = parser.parse(new InputStreamReader(input));
                Log.p(" Came heer"+elem);
            }                
        };
        r.setUrl("http://192.168.10.224:8888/CXPPostScheduleService/Service.asmx");
        r.setPost(false);
        /*r.addArgument("username", "TestAbhi");
        r.addArgument("password", "TestAbhi");
        r.addArgument("caterer", "calihanint");*/
        r.setContentType("application/soap+xml;charset=UTF-8");
        NetworkManager.getInstance().addToQueueAndWait(r);
        r.getResponseData();
    }
});

它显​​示一个 html 文件作为响应。你能帮我检查一下我在这段代码中做错了什么吗?

我假设您需要 post 请求尝试:

r.setPost(true);

如果您从设备调用它,请确保设备与服务器位于同一网络中,否则 NAT 本地地址将无法访问。请注意,如果服务器托管在别处而不是您的计算机上,这也将适用于模拟器。

我还建议检查服务器日志、错误响应代码和 post 错误 HTML。可以使用模拟器中的网络监控工具进一步调试。