2013-04-23 6 views
0

샘플 WCF Restful Service를 작성하고 있습니다. 여기에 서비스의 POST 메소드에 객체를 전달하려고합니다. 여기에 코드를WCF Restful Services POST 메서드를 사용하면 BAD REQUEST (400)가 응답 개체에 반환됩니다.

클라이언트 측 코드를 간다 :

HttpWebRequest req = null; 
HttpWebResponse res = null; 
string serviceurl = "localhost:63004/MySampleService.svc/Survey"; 
string XmlText; 
req = (HttpWebRequest)WebRequest.Create(serviceurl); 
req.Method = "POST"; 
req.ContentType = "application/xml; charset=utf-8"; 
req.Timeout = 30000; 
req.Headers.Add(serviceurl); 

var xmlDoc = new XmlDocument { XmlResolver = null }; 
xmlDoc.Load(Server.MapPath("Sample.xml")); 
string sXml = xmlDoc.InnerXml; 
req.ContentLength = sXml.Length; 
var sw = new StreamWriter(req.GetRequestStream()); 
sw.Write(sXml); 
sw.Close(); 

res = (HttpWebResponse)req.GetResponse(); //GETTING THE BAD REQUEST(400) ERROR here. 

서비스 코드 :

[OperationContract] 
[WebInvoke(UriTemplate = "/Survey", Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)] 
void InsertData(Survey SurveyItem); 

이 하나가 나를 도울 수 ... 미리 감사드립니다 .... 당신은이

+0

미안하지만 .. – user1606651

답변

0

web.config 또는 wcf 서비스 용 app.config의 구성에 대한 세부 정보는 제공되지 않습니다. 하지만 webinvoke 속성에서 한 가지 잘못된 점을 발견했습니다.

위와 같은 요청 (문자열로 직접 xml)을 게시 할 때마다 아래 코드 스 니펫과 같이 bodystyle 매개 변수를 Bare로 설정해야합니다.

[OperationContract] 
[WebInvoke(UriTemplate = "/Survey", Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)] 
void InsertData(Survey SurveyItem);