c# - 如何以编程方式创建 EndPoint 以与 Cmdlet 中的 HttpWebRequest 一起使用?

标签 c# java wcf soap httpwebrequest

请记住,由 SvcUtil.exe 和/或添加服务引用生成的代理/客户端 WCF 类并不总是有效。因此,你必须“手工”/“艰难”地做事。

就说吧。

事实上,这是我遇到的问题。我必须与一个用 Java 编写的 Web 服务进行对话,而它生成的 WSDL 实在是太糟糕了,生成的代码根本无法工作。所以,我必须使用 HttpWebRequest 进行 SOAP 调用。当您至少可以有一个 app.config 来设置端点信息时,这是没有问题的。

当然,就我而言,我现在尝试在 Cmdlet 中与此 POS Java 服务通信,这意味着它位于 DLL 中,因此无法使用 app.config。

所以,现在的问题是;我到底如何通过 HttpWebRequest 以编程方式创建/使用 BasicHttpBinding 和 EndPointAddress 对象(这些对象是否正确)?

最佳答案

我同意你的观点,在 .NET 中使用 JAVA Web 服务有点令人讨厌,尤其是使用错误契约、ReplyAction 和带有额外包装器(如类型)的签名。

我针对类似需求采取的方法是手动重写 svcutil 生成的引用类。

如果现在的替代方案是使用 HttpWebRequest 调用 Java 服务,那么为什么我们需要绑定(bind)?假设这个Java Service是通过http传输的,难道不能直接使用post/get调用吗?

请您发布更多详细信息。

@编辑:另外,请参阅Consume Web Service with POST from a WCF Service

关于c# - 如何以编程方式创建 EndPoint 以与 Cmdlet 中的 HttpWebRequest 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750576/

相关文章:

javascript - C# 裁剪、缩放、旋转图像

c# - .NET 应用程序不想运行

java - 多个字段 : volatile or AtomicReference?

c# - WCF 中的超时问题

c# - 如何从 List<Tuple<DateTime, string>> 中删除项目

c# - 属性私有(private)集;

java - 我不明白在 Java 中使用 "this"和 "that"的概念

java - 如何反转字符串中具有换行符(\n 或\r)的单词?

wcf - wcf 服务中 ServiceHost 指令中的服务类型问题

c# - WCF:无法添加服务。服务元数据可能无法访问。确保您的服务正在运行并公开元数据