简体   繁体   English

Ksoap Web服务返回false而不是字符串

[英]Ksoap webservices returning false instead of string

I can not work out why Ksoap is not returning the string and only returning false, here is the code for webservice: 我无法弄清楚为什么Ksoap不返回字符串而仅返回false,这是webservice的代码:

 private static final String SOAP_ACTION = "";
private static final String METHOD_NAME = "serverImpService";
private static final String NAMESPACE = "http://server/";
private static final String URL = "http://localhost:9841/server/";
TextView tv;
String results = "";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tv = (TextView)findViewById(R.id.TextView01);

    SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

    SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
    soapEnvelope.dotNet = true;
    soapEnvelope.setOutputSoapObject(Request);

    HttpTransportSE aht = new HttpTransportSE(URL); 
    try {
        aht.call(SOAP_ACTION, soapEnvelope);
        SoapPrimitive resultsString = (SoapPrimitive)soapEnvelope.getResponse();
        results = resultsString.toString();
        tv.setText("Message : " + results);     
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }

Here is the WDSL file: 这是WDSL文件:

<types></types>
<message name="getMessage"></message>
<message name="getMessageResponse">
<part name="return" type="xsd:string"></part>
</message>
<portType name="webServer">
<operation name="getMessage">
<input message="tns:getMessage"></input>
<output message="tns:getMessageResponse"></output>
</operation>
</portType>
<binding name="serverImpPortBinding" type="tns:webServer">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"></soap:binding>
<operation name="getMessage">
<soap:operation soapAction=""></soap:operation>
<input>

<soap:body use="literal" namespace="http://server/"></soap:body>
</input>
<output>
<soap:body use="literal" namespace="http://server/"></soap:body>
</output>
</operation>
</binding>
<service name="serverImpService">
<port name="serverImpPort" binding="tns:serverImpPortBinding">
<soap:address location="http://localhost:9841/server"></soap:address>
</port>
</service>
</definitions>

All the server does it return a message 所有服务器都返回一条消息

public class serverImp implements webServer {

    public String getMessage(){
    message = "test";
    return message;
}

The result from the android is: "false", I have tried editing SOAP_ACTION, METHOD_NAME etc with no luck, 来自android的结果是:“ false”,我尝试编辑SOAP_ACTION,METHOD_NAME等,但没有成功,

Any ideas? 有任何想法吗?

try this: 尝试这个:

Object response = envelope.getResponse();
String result = response.toString();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM