【问题标题】:How do I programmatically create an EndPoint for use with an HttpWebRequest in a Cmdlet? [closed]如何以编程方式创建 EndPoint 以与 Cmdlet 中的 HttpWebRequest 一起使用? [关闭]
【发布时间】:2013-12-23 20:19:54
【问题描述】:

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

就说吧。

事实上,这是我遇到的问题。我必须与一个用 Java 编写的 Web 服务交谈,它吐出的 WSDL 是如此.. 崩溃了,生成的代码根本不起作用。所以,我必须使用 HttpWebRequest 进行 SOAP 调用。当您至少可以有一个 app.config 来设置端点信息时,这没有问题。

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

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

【问题讨论】:

    标签: c# java wcf soap httpwebrequest


    【解决方案1】:

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

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

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

    请您发布更多详细信息。

    @EDIT:另外,请参考Consume Web Service with POST from a WCF Service

    【讨论】:

    • 我可以在测试控制台应用程序中使用 HtpWebRequest 调用 Web 服务没问题;显然是因为我能够将必要的<system.serviceModel> 配置元素添加到控制台应用程序的 app.config 中。但是现在我试图在 DLL 中进行调用(因此没有 app.config),我试图弄清楚如何以编程方式创建和使用代码中的配置信息。有意义吗?
    • @ScottK.Fraley Make Sense? 不。因为您在使用HttpWebRequest 时不需要任何绑定/配置信息(准备好您的数据,发布并阅读回复。)
    • 我能说什么,你有答案。
    • 好吧,现在它开始工作了,我意识到我的问题不在于我缺少绑定信息等,我遇到了超时错误。应该问如何处理那个。 >facepalm
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多