调用 http 适配器过程失败

Posted

技术标签:

【中文标题】调用 http 适配器过程失败【英文标题】:Invoking http adapter procedure failure 【发布时间】:2016-02-19 10:23:46 【问题描述】:

我正在尝试向 Web 服务器发送一些值,它会使用 ibm mobilefirst 中的 http 适配器以 true 或 false 响应。当我从环境中调用该过程时,出现此错误:


"errors": [
  "Runtime: Http request failed: java.net.UnknownHostException: mfpreader.comze.com\/"
],
"info": [
],
"isSuccessful": false,
"warnings": [
]

这是我正在使用的链接: http://mfpreader.comze.com/login.php?username=kevin&password=pass 服务器正在工作。

LoginAdapter.xml

<connectivity>
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
        <protocol>https</protocol>
        <domain>mfpreader.comze.com/</domain>
        <port>443</port>        


<procedure name="getVerify"/>

LoginAdapter-impl.js

                 function getVerify(pName) 

var input = 
    method : 'get',
    returnedContentType : 'json',
    path : '/login.php',
    parameters : 
        'username' : pName,
        'password' : 'pass'   // hard-coded
            

 ;

return WL.Server.invokeHttp(input);


我可以帮忙吗?谢谢。

【问题讨论】:

【参考方案1】:

我认为您的问题是您的域名中有多余的/

<domain>mfpreader.comze.com/</domain>

这是一个域名,而不是 URL。您只需指定您尝试访问的服务器的主机名:

<domain>mfpreader.comze.com</domain>

【讨论】:

谢谢你安德鲁。现在,我收到了这个错误:过程调用失败:读取超时 这是一个不同的问题。建议你打开一个不同的问题。【参考方案2】:

使用http端口80连接网站。另一方面返回returnedContentType : 'plain'

LoginAdapter.xml

<connectivity>
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
        <protocol>http</protocol>
            <domain>mfpreader.comze.com</domain>

            <port>80</port>      


<procedure name="getVerify"/>

LoginAdapter-impl.js

function getVerify(pName) 

    var input = 
        method : 'get',
        returnedContentType : 'plain',
        path : '/login.php',
        parameters : 
            'username' : pName,
            'password' : 'pass'   // hard-coded
                

     ;

    return WL.Server.invokeHttp(input);

    

调用结果:


   "errors": [
   ],
   "info": [
   ],
   "isSuccessful": true,
   "responseHeaders": 
      "Connection": "close",
      "Content-Length": "748",
      "Content-Type": "text\/html",
      "Date": "Fri, 19 Feb 2016 11:56:31 GMT",
      "Server": "Apache",
      "X-Powered-By": "PHP\/5.2.17"
   ,
   "responseTime": 563,
   "statusCode": 200,
   "statusReason": "OK",
   "text": "<br><table border='1' cellpadding='2' bgcolor='#FFFFDF' bordercolor='#E8B900' align='center'><tr><td><font face='Arial' size='1' color='#000000'><b>PHP Error Message<\/b><\/font><\/td><\/tr><\/table><br \/>\n<b>Warning<\/b>:  json_encode() expects exactly 1 parameter, 2 given in <b>\/home\/a1974455\/public_html\/login.php<\/b> on line <b>72<\/b><br \/>\n<br><table border='1' cellpadding='2' bgcolor='#FFFFDF' bordercolor='#E8B900' align='center'><tr><td><div align='center'><a href='http:\/\/www.000webhost.com\/'><font face='Arial' size='1' color='#000000'>Free Web Hosting<\/font><\/a><\/div><\/td><\/tr><\/table> \n<!-- Hosting24 Analytics Code -->\n<script type=\"text\/javascript\" src=\"http:\/\/stats.hosting24.com\/count.php\"><\/script>\n<!-- End Of Analytics Code -->",
   "totalTime": 578,
   "warnings": [
   ]

【讨论】:

"errors": [ ], "info": [ ], "isSuccessful": true, "responseHeaders": "Connection": "close", "Content-Length": "159 ","内容类型":"text\/html","日期":"星期六,2016 年 2 月 20 日 11:15:35 GMT","服务器":"Apache","X-Powered-By":" PHP\/5.2.17" , "responseTime": 705, "statusCode": 200, "statusReason": "OK", "text": "True \n\n\n【参考方案3】:

网站无法使用。

当您指向它时,您使用的是 http,但在 XML 中您使用的是 https。当尝试使用 https 协议访问网站时,它没有加载。

【讨论】:

是的,你的仪式。它的mfpreader.comze.com/login.php?username=kevin&password=pass 我在 xml 文件中将协议从 https 更改为 http。我遇到了同样的错误。 网站使用http如何连接??

以上是关于调用 http 适配器过程失败的主要内容,如果未能解决你的问题,请参考以下文章

为 iOS MobileFirst ResourceRequest 适配器调用设置 HTTP 标头失败

MobileFirst Platform 适配器调用在模拟器中失败

无法调用适配器过程

IBM Worklight 6.0 - 调用适配器过程时出错

获取错误 WLClient onInvoke 过程失败:WLClient.m 中的 userInfo

每次第一次调用时,适配器调用都会失败(超时)