如何将xml发布到webservice并使用worklight获取结果

时间:2012-10-15 10:37:55

标签: ibm-mobilefirst

我是新工作灯并使用http适配器将xml发布到webservices以便我可以获得结果。但是我无法做到这一点它会给出一些错误。我的代码在adapter.js

function getStories(interest) {
    path = getPath(interest);

    var input = {
        method : 'post',
        returnedContentType : 'xml',
        path : path
        parameters : '<HOME><REQUEST><USERID>701692</USERID><SECURE_KEY>B6F86B1B11E9EAFC</SECURE_KEY><EMPLOYEE_ID>000000000000035B</REQUEST></HOME>'
    };


    return WL.Server.invokeHttp(input);
}

正在提供这样的输出

  

{“错误”:[         “文件过早结束。”,         “无法从后端解析有效负载(过程:HttpRequest)”],“info”:[],“isSuccessful”:false,
  “responseHeaders”:{         “缓存控制”:“私有”,         “内容长度”:“0”,         “日期”:“星期一,2012年10月15日10:29:01 GMT”,         “服务器”:“Microsoft-IIS / 6.0”,         “X-AspNet-Version”:“2.0.50727”,         “X-Powered-By”:“ASP.NET”},“statusCode”:200,“statusReason”:“OK”,“警告”:[]}

我希望在工作灯中实现此代码(如下所示),我该怎么做。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<form name="f1" id="fi" action="http://mydoman.aspx" method="post">
<input TYPE="hidden" name="xml" value="<HOME><REQUEST><USERID>701692</USERID><SECURE_KEY>B6F86B1B11E9EAFC17F5844EE9B16669</SECURE_KEY></REQUEST></HOME>"/>

<input type="submit" value="submit"/>


</form>
</BODY>
</HTML>

3 个答案:

答案 0 :(得分:1)

您错过了一个步骤,您正在尝试将XML发送到您的后端。 请阅读模块5.3 - 使用带有SOAP服务的HTTP适配器:https://www.ibm.com/developerworks/mobile/worklight/getting-started/index.html

您的问题的答案是:

var request = <HOME><REQUEST><USERID>701692</USERID><SECURE_KEY>B6F86B1B11E9EAFC</SECURE_KEY><EMPLOYEE_ID>000000000000035B</EMPLOYEE_ID></REQUEST></HOME>;

function getStories(interest) {
    var input = {
        method : 'post',
        returnedContentType : 'xml',
        path : '',
        body : {
            content: request.toString(),
            contentType: 'text/xml; charset=utf-8'
        }
    };
    return WL.Server.invokeHttp(input);
}

答案 1 :(得分:0)

returnedContentType:'xml'表示Worklight将尝试解析从后端获得的响应。查看错误消息,我可以看到“Content-Length”:“0”,这意味着响应体是空的,因此无法解析为XML。 尝试将returnedContentType更改为'plain'。

答案 2 :(得分:0)

var request = '<HOME><REQUEST><USERID>701692</USERID><SECURE_KEY>B6F86B1B11E9EAFC</SECURE_KEY><EMPLOYEE_ID>000000000000035B</EMPLOYEE_ID></REQUEST></HOME>';

function getStories(interest) {
    var input = {
        method : 'post',
        returnedContentType : 'xml',
        path : '',
        body : {
            content: request,
            contentType: 'text/xml; charset=utf-8'
        }
    };
    return WL.Server.invokeHttp(input);
}
相关问题