2012-06-25 56 views
0

当我使用下面的方法向asmx服务发送xml请求时,它可以正常工作,唯一的区别是内容类型为application/soap+xml。我收到错误:400错误的请求。下面是我使用下面通过HTTP POST发送请求到WCF服务的方法:向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()

+0

为什么这个downvoted?谁做的,关心解释? – Xaisoft

回答

0

什么是你的服务类型试图打电话。它是REST WCF服务还是SOAP WCF服务?

您可以监视使用Fiddler看到你的要求的样子时,它的工作原理您的请求,当它不。

也使您的服务Tracing知道为什么你得到一个400错误的请求。

+0

既不是,它只是一个普通的旧的HTTP POST – Xaisoft

+0

我指的是服务(* .svc)? – Rajesh

+0

是的,我被告知它既不是,它只是一个HTTP POST。 – Xaisoft

0

不知道为什么这个作品,如果有人能解释一下这将是巨大的。我需要以方法名追加到URI为它工作,例如,

http://urltoservice.svc/MethodToCall

+0

上述服务是通过停止机构托管,因此你需要指定需要通过添加方法名到最后 – Rajesh

+0

我仍有小幅混淆尤其是当有人告诉我这不是休息被acecssed哪些资源。谢谢你的耐心。 – Xaisoft

+0

REST基于HTTP协议(http://en.wikipedia.org/wiki/Representational_state_transfer) – Rajesh