Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向WCF服务发送请求时请求错误?_C#_Wcf - Fatal编程技术网

C# 向WCF服务发送请求时请求错误?

C# 向WCF服务发送请求时请求错误?,c#,wcf,C#,Wcf,当我使用下面的方法向asmx服务发送xml请求时,效果很好,唯一的区别是内容类型是application/soap+xml。我得到错误:400个错误请求。下面是我正在使用的通过HTTP Post将请求发送到WCF服务的方法: private static void SendRequest(string request) { var req = (HttpWebRequest) WebRequest.Create("http://urltoservice.svc"); req.Co

当我使用下面的方法向asmx服务发送xml请求时,效果很好,唯一的区别是内容类型是
application/soap+xml
。我得到错误:400个错误请求。下面是我正在使用的通过HTTP Post将请求发送到WCF服务的方法:

private static void SendRequest(string request)
{
    var req = (HttpWebRequest) WebRequest.Create("http://urltoservice.svc");
    req.ContentType = "text/xml";
    req.Method = "POST";

    using (var stm = req.GetRequestStream())
    {
        using (var stmw = new StreamWriter(stm))
        {

            stmw.Write(request);
        }
    }


    byte[] myData;
    using (var webResponse = req.GetResponse())
    {

        var responseStream = webResponse.GetResponseStream();
        myData = ReadFully(responseStream);
    }

    // Do whatever you need with the response
    string responseString = Encoding.ASCII.GetString(myData);
}

这似乎是在说:
var webResponse=req.GetResponse()。是REST WCF服务还是SOAP WCF服务

您可以使用监视您的请求,以查看请求在工作时和不工作时的外观


还可以通过您的服务了解为什么会收到400个错误请求。

不知道为什么会这样,如果有人能解释一下,那就太好了。我需要将方法名附加到URI中,以使其工作,例如


http://urltoservice.svc/MethodToCall

两者都不是,它只是一个普通的旧HTTP POST我指的是服务(*.svc)?是的,我被告知两者都不是,它只是一个HTTP POST。你说它在向.asmx发送请求时起作用,对吗?在这种情况下,我假设.svc应该是一个SOAP请求?你有权使用WCF服务吗?我知道了。我需要将方法名附加到URI中。上面的服务是通过REST机制托管的,因此您需要通过将方法名添加到End来指定需要访问的资源。我仍然有点困惑,特别是当有人告诉我它不是REST时。感谢您的耐心。REST基于HTTP协议()为什么会被否决?不管是谁干的,想解释一下吗?