HANA XS JS-Web服务调用错误

2020-09-09 17:32发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我正在从XS Engine调用Web服务,但收到以下套接字错误,请帮助。

基本上Http请求没有发生-请求未发送!

我检查了端口,并将XS引擎设置为调试模式。

错误消息:

 HttpClient.request:请求失败:发生内部错误"无法将请求发送到套接字... rc = -1" 

Http Dest和XS JS文件:

 host =" https://hcids.ap1.hana.ondemand.com/DSoD/webservices";
 端口= 80;
 description =" DS On Demand";
 useSSL = false;
 authType =无;
 useProxy = false;
 proxyHost ="";
 proxyPort = 0;
 超时= 30000;
 
//XS JS文件

 var destination_package =" File_Import.xsjs";
 var destination_name =" service_destination";


 尝试{
 var soapenv ="";
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" "");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat("  MY_ORGS ");
 soapenv = soapenv.concat("  name@mailid.com ");
 soapenv = soapenv.concat("  mypassword ");
 soapenv = soapenv.concat("  false ");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" ");

 var dest = $ .net.http.readDestination(destination_package,destination_name);
 var client = new $ .net.http.Client();
 var req = new $ .web.WebRequest($。net.http.POST,soapenv);
 client.request(req,dest);
 var response = client.getResponse();
 如果(response.body)
 {
 $ .response.setBody(response.body.asString());
 }
 其他
 {
 $ .response.setBody(" error");
 }
 $ .response.status = response.status;
 $ .response.contentType =" text/xml; charset = utf-8";
 }
 抓住(x)
 {
 $ .response.status = 500;
 $ .response.setBody(x.message);
 } 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我正在从XS Engine调用Web服务,但收到以下套接字错误,请帮助。

基本上Http请求没有发生-请求未发送!

我检查了端口,并将XS引擎设置为调试模式。

错误消息:

 HttpClient.request:请求失败:发生内部错误"无法将请求发送到套接字... rc = -1" 

Http Dest和XS JS文件:

 host =" https://hcids.ap1.hana.ondemand.com/DSoD/webservices";
 端口= 80;
 description =" DS On Demand";
 useSSL = false;
 authType =无;
 useProxy = false;
 proxyHost ="";
 proxyPort = 0;
 超时= 30000;
 
//XS JS文件

 var destination_package =" File_Import.xsjs";
 var destination_name =" service_destination";


 尝试{
 var soapenv ="";
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" "");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat("  MY_ORGS ");
 soapenv = soapenv.concat("  name@mailid.com ");
 soapenv = soapenv.concat("  mypassword ");
 soapenv = soapenv.concat("  false ");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" ");
 soapenv = soapenv.concat(" ");

 var dest = $ .net.http.readDestination(destination_package,destination_name);
 var client = new $ .net.http.Client();
 var req = new $ .web.WebRequest($。net.http.POST,soapenv);
 client.request(req,dest);
 var response = client.getResponse();
 如果(response.body)
 {
 $ .response.setBody(response.body.asString());
 }
 其他
 {
 $ .response.setBody(" error");
 }
 $ .response.status = response.status;
 $ .response.contentType =" text/xml; charset = utf-8";
 }
 抓住(x)
 {
 $ .response.status = 500;
 $ .response.setBody(x.message);
 } 
付费偷看设置
发送
7条回答
昵称总是被占用
1楼 · 2020-09-09 18:10.采纳回答

Vyas,您好

似乎您正在尝试访问" https: //hcids.ap1.hana.ondemand.com/DSoD/webservices "。

  • 从主机开始,它应该是 ap1.hana.ondemand.com
  • 我尝试通过浏览器REST客户端使用您在目标文件中使用的主机和端口访问Web服务。
  • 似乎有302重定向将您指向URL的https版本。 这意味着即使您的目标指向端口80,也将被强制端口443(https)。 还需要设置useSSL = true。
  • 您提到的错误可能是由于缺少信任库。 由于您正在访问HTTPS网址,因此需要上传主机的证书( ap1.hana。 ondemand.com )访问信任库(通过XS Admin访问它)并使用它。

除此之外,请正确设置请求标头和有效负载。 这应该可以让您访问Web服务。

那应该可以解决您的问题。

Bunny_CDM
2楼-- · 2020-09-09 18:08

Vyas,

您有超时吗? 您能ping通目的地吗? 丢失连接似乎更像是超时错误,而不是不可到达的错误

路亽曱_Ryan
3楼-- · 2020-09-09 18:13

对于您指定的主机,HTTPS正确,但您指定的端口为80。这似乎是错误的。 另外,您说使用SSL是错误的。 我认为您的目标参数不匹配。

野沐沐
4楼-- · 2020-09-09 18:18

嗨,塞尔吉奥,

是的,我能够ping通目的地并使用SOAP UI进行呼叫。 假设这是由于特定的Web服务引起的问题,我尝试使用2-3种不同的服务,但结果仍然相同。

空代码
5楼-- · 2020-09-09 18:26

您是否尝试增加超时时间以查看是否有帮助?

小c菟菟
6楼-- · 2020-09-09 18:17

谢谢Hem先生。 有效。 显然XS信任连接中存在问题。

xfwsx85
7楼-- · 2020-09-09 18:08

Thomas Jung ,根据帮助 https://help .sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/0022f78f5d4d4e858c909b2d06286343.html 按需连接应该使用端口代理localhost:20003完成,但似乎已被禁止使用。 我在任何地方都找不到任何信息,能否请您确认我的假设是否正确?

一周热门 更多>