我是新工作灯并使用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>
答案 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);
}