【问题标题】:How to HttpPost from a Wcf service to another?如何从 Wcf 服务 HttpPost 到另一个?
【发布时间】:2015-11-05 07:18:59
【问题描述】:

首先声明我是新手。

现在,我有一个网站将字符串发送到 Wcf 服务 A 中的方法,该方法应该将其发布到另一个 wcf 服务 B

我可以将字符串从 Web 应用程序发送到服务 A,但我似乎无法将其 HttpPost 发送到 B。您能说明一下吗?

WEB应用:

SpendWcfRef.SPEND WcfSpend = new SpendWcfRef.SPEND(); 
        string str=WcfSpend.TestPost("abc"); //this is service A

服务 A

 [OperationContract]
    string TestPost(string test);



public string TestPost(string test)
    {

        System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:58486/CIBIL_WCF/Service.svc/TestInsert?testobj="+test+"");
        WebResponse response = request.GetResponse();//The remote server returned an error: (400) Bad Request.
        string result = new StreamReader(response.GetResponseStream()).ReadToEnd();
        return "Yeey".ToString();
    }

服务 B

      [OperationContract]
        string TestInsert(string testObj);

 public string TestInsert(string testobj)
    {

        return testobj.ToString().ToUpper();
    }

【问题讨论】:

    标签: c# asp.net .net wcf http


    【解决方案1】:

    为什么不将 ServiceB 添加为 ServiceA 项目中的服务引用?这样,您将获得一个可用于调用 ServiceB 的代理对象,而不是使用 HttpWebRequest

    参考https://msdn.microsoft.com/en-us/library/bb628652.aspx

    【讨论】:

    • 假设我必须通过 HTTP Post 发送数据。没有其他选择。
    • 在这种情况下,您需要形成正确的 SOAP 请求并执行 POST。默认情况下,WCF 服务不需要具有 REST 端点。所以一个简单的 HTTP GET 请求将不起作用。在发送请求时,您还需要考虑其他问题,例如安全性。找出要遵循的 SOAP 结构的一种简单方法是从现有的工作客户端(如 SOAPUI)获取网络跟踪并尝试复制它。
    猜你喜欢
    • 2012-08-19
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    相关资源
    最近更新 更多