2012-06-25 203 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