Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java KSOAP2 android混淆了名称空间/url和HttpTransportSE';s call()函数引发EOF异常_Java_Android_Web Services_Soap_Ksoap2 - Fatal编程技术网

Java KSOAP2 android混淆了名称空间/url和HttpTransportSE';s call()函数引发EOF异常

Java KSOAP2 android混淆了名称空间/url和HttpTransportSE';s call()函数引发EOF异常,java,android,web-services,soap,ksoap2,Java,Android,Web Services,Soap,Ksoap2,我不明白为什么我在Android上的soap请求不起作用,我遵循了上一节的教程 基本上我的代码如下: 公共类SoapClient{ private static final String NAMESPACE = "https://ieslamp.technikum-wien.at/sys_bvu4_17_l/JamDec/ContentManager/soapservice.php"; //not used right now private static final String TARGE

我不明白为什么我在Android上的soap请求不起作用,我遵循了上一节的教程

基本上我的代码如下:

公共类SoapClient{

private static final String NAMESPACE = "https://ieslamp.technikum-wien.at/sys_bvu4_17_l/JamDec/ContentManager/soapservice.php";

//not used right now
private static final String TARGET_NAMESPACE = "http://ieslamp.technikum-wien.at/soap/getJamRoutes";
private static final String SOAP_ACTION = "https://ieslamp.technikum-wien.at/sys_bvu4_17_l/JamDec/ContentManager/soapservice.php/getJamRoutes";
//which is the URL I need? some tutorials say it's the url to the wsdl, but others say it's the location of the webservice
private static final String POST_URL = "https://ieslamp.technikum-wien.at/sys_bvu4_17_l/JamDec/ContentManager/soapservice.php?wsdl";
private static final String LOCATION_URL = "https://ieslamp.technikum-wien.at:443/sys_bvu4_17_l/JamDec/ContentManager/soapservice.php";

private Context context;

public SoapClient(Context context) {
    this.context = context;
}

public String getJamsFromServer() {


    String methodname = "getJamRoutes";
    SoapObject request = new SoapObject(TARGET_NAMESPACE, methodname);
    String routes = null;

    SoapSerializationEnvelope envelope = getSoapSerializationEnvelope(request);

    HttpTransportSE ht = getHttpTransportSE();
    try {
        ArrayList<HeaderProperty> headerPropertyArrayList = new ArrayList<>();
        headerPropertyArrayList.add(new HeaderProperty("Connection", "close"));
        ht.call(SOAP_ACTION, envelope, headerPropertyArrayList);
        SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
         routes = result.toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    }
    return routes;
}


private final SoapSerializationEnvelope getSoapSerializationEnvelope(SoapObject request) {
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = false;
    envelope.implicitTypes = true;
    envelope.setOutputSoapObject(request);

    return envelope;
}

private final HttpTransportSE getHttpTransportSE() {
    HttpTransportSE ht = new HttpTransportSE(Proxy.NO_PROXY, LOCATION_URL, 1200000);
    ht.debug = true;

    ht.setXmlVersionTag("<!--?xml version=\"1.0\" encoding= \"UTF-8\" ?-->");
    return ht;
}

}
在我身上抛出一个EOF异常,我不知道出了什么问题

你能解释一下它的名称空间和url吗-

HttpTransportSE ht = new HttpTransportSE(URL); 
我真的需要?我是使用targetNamespace还是Namespace?我在研究时无法理解

以下是我生成的wsdl文件:


感谢您的帮助!

问题自行解决,最新的jar文件似乎不起作用。如果您要使用ksoap,我建议您使用标记为不推荐的旧版本,但它们至少可以完成此任务。

您可以在上找到我生成的WSDL文件。我无法将其放入我的问题中,因为我有pr格式化的问题:(我忘了提到我正在使用ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar作为android的soap库。你能分享你的jar链接或jar吗
HttpTransportSE ht = new HttpTransportSE(URL);