- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接 Twinfield logon api通过Java。我试过的代码是
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.MimeHeaders;
import java.io.ByteArrayInputStream;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class SoapTest {
public static void main(String[] args) {
try {
SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage sm = mf.createMessage();
SOAPHeader sh = sm.getSOAPHeader();
SOAPBody sb = sm.getSOAPBody();
//sh.detachNode();
QName logonName = new QName("http://www.twinfield.com", "Logon");
SOAPBodyElement logonElement = sb.addBodyElement(logonName);
QName userTag = new QName("user");
SOAPElement user = logonElement.addChildElement(userTag);
user.addTextNode("myuser");
QName passwordTag = new QName("password");
SOAPElement password = logonElement.addChildElement(passwordTag);
password.addTextNode("mypassword");
QName organisationTag = new QName("organisation");
SOAPElement organisation = logonElement.addChildElement(organisationTag);
organisation.addTextNode("myorg");
System.out.println("\n Soap Request:\n");
sm.writeTo(System.out);
System.out.println();
URL endpoint = new URL("https://login.twinfield.com/webservices/session.asmx");
SOAPMessage response = connection.call(sm, endpoint);
connection.close();
//System.out.println(response.getContentDescription());
//System.out.println("--------------------------");
// Reading response
printSOAPResponse(response);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static void printSOAPResponse(SOAPMessage soapResponse) throws Exception {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
Source sourceContent = soapResponse.getSOAPPart().getContent();
System.out.print("\nResponse SOAP Message = ");
StreamResult result = new StreamResult(System.out);
transformer.transform(sourceContent, result);
}
}
似乎一切都是正确的,但我经常收到回复 <faultstring>Server did not recognize the value of HTTP Header SOAPAction: .</faultstring>
.上述程序的完整输出如下:
java SoapTest
Soap Request:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<Logon xmlns="http://www.twinfield.com">
<user>NLG001136</user>
<password>qura976yj</password>
<organisation>TWF-SAAS</organisation>
</Logon>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response SOAP Message =
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Server did not recognize the value of HTTP Header SOAPAction: .</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
相同的请求/凭据在 Soapclient.com 上运行良好.有人可以指出我的程序哪里出错了吗?
最佳答案
因为故障代码是客户端,所以是您发送的 soap 消息导致了问题。尝试使用 SOAP UI 传递相同的内容,我尝试将 WSDL 导入到我的 SOAP UI 中,但出现附加错误...
加载错误 [ https://login.twinfield.com/webservices/session.asmx?wsdl] : org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: 错误: 不关闭标签
由于显示的 Web 服务是文档/文字包装的,只需尝试使用 wsimport 创建 hte 客户端代码,您将拥有所有需要的文件,并且可以轻松发送相同的请求。
如果您只对 SAAJ 方式感兴趣,那么我会尝试传递通过 SOAP UI 创建的消息。
希望这对您有所帮助。
关于java - Twinfield - 服务器无法识别 HTTP header SOAPAction 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069276/
使用 ksoap2库 (v2.6.4),SOAP version11,我正在通过 2.3.3 模拟器设备执行 Web 服务。服务器识别请求的操作并提供预期的答案。 HTTP/1.1 header (在
我的要求是从 Android 调用 Web 服务并以良好的方式显示结果。 但是在 Web 服务的 WSDL 中我没有找到 SOAPAction。 WSDL 看起来像这样:
不知道您是否可以帮助一个可怜的糊涂的 C# 程序员,但就这样吧。我有一个客户端有一个遗留的 Java Soap 应用程序,我们需要接受来自它的传入 Soap 请求。我已经构建了一个解决方案并对其进行了
我正在使用 NuSoap PHP 库 调用 webservice。 webservice 似乎使用 .NET;每次我调用它时,都会收到关于使用无效 SoapAction header 的错误。发送的
我正在进行 SOAP 服务器的契约(Contract)优先开发。 wsdl 为多个方法声明相同的 soapAction。现在 svcutil 生成的代码为多个方法的 OperationContract
我是使用 jax-ws 的网络服务的新手。我开始根据网络上的某种教程来实现它。此外,我试图通过我的 android 客户端访问该服务,所以我调用了它。 private static final Str
我们有一个 Spring 应用程序,其中有将使用 PayloadRoot 和 SoapAction 的 Web 服务。现在我们在webservice-ws-context.xml中配置了以下代码
我正在使用apache cxf创建一个soap客户端。我使用网络钩子(Hook)捕获数据并在Http header 中找到SOAPAction为空 SOAPAction : "" 下面是代码 URL
我的要求是从 Android 调用 Web 服务并以良好的方式显示结果。 但在 Web 服务的 WSDL 中,我没有找到 SOAPAction。 WSDL 看起来像这样:
我正在创建一个将从另一个服务调用的 WCF 服务。 在 WSDL soapaction 中出现如下 我想要它 如何指定自定义 soap 操作? 最佳答案 您还可以指定 Action经营契约(Con
我正在尝试使用 JAX-WS 从我的 Java 代码生成 WSDL。 除了我在 WSDL 中的操作,soapAction 仍然为空之外,一切似乎都正常。 这是我的代码: @WebService pub
我想通过 PHP 重新连接我的路由器。 控制台命令如下: curl "http://192.168.178.1:49000/upnp/control/WANIPConn1" -H "Content-T
我正在使用 SoapUI 来测试将由 Java 客户端应用程序使用的 .Net Web 服务。 当我将 Web 服务连接到 SoapUI 但更新 WSDL 位置并调用预设测试脚本之一时,Web 服务失
我想对 CUCM DB 进行 SQL 查询。我使用 Maven jaxb2 插件从 WSDL 生成 Java 类,但 Cisco AXL 文档建议使用 wsdl2java。我有很多带有 Req/Res
我正在发送 SOAP 请求,服务器提示 SOAPAction header 为空。我认为我设置正确,但显然我不是。 Wireshark 显示未设置。 @Test public void testLog
请找到下面我用来调用我的 SOAP 端点的 html Soap 客户端代码我的soap webservice作为axis项目部署在tomcat中。 请找到下面的客户端代码 SOAP Jav
在下面的 WSDL 摘录中,在该行
我正在尝试在 Android 手机上使用 kSOAP2 访问 Web 服务。我认为连接正在建立,但服务器不会回答我的请求,因为我没有提供 SOAP 版本 1.1 中似乎需要的 SOAP 操作 head
我正在尝试使用 SAAJ 为这个 WSDL 调用 SOAP 网络服务。我在此处提交了对此 WSDL 的请求 http://www.webservicex.net/ws/WSDetails.aspx?W
我正在使用 Spring Integration 开发一个客户端应用程序,需要调用 SOAP 1.2 服务。如果我使用 int-ws:header-enricher 设置 SOAPAction:
我是一名优秀的程序员,十分优秀!