2012-04-23 4 views
2

저는 REST API로 작업해야하는 프로젝트를 진행하고 있습니다. API는 DTO를 입력 매개 변수로 기대합니다. C# REST API : xml from post data

[OperationContract] 
     [WebInvoke(Method = "POST", UriTemplate = "campaign/create?session={sessionkey}", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml)] 
     [XmlSerializerFormat(Style = OperationFormatStyle.Document, Use = OperationFormatUse.Literal)] 
     FeedbackDTO PersistCampaign(string sessionkey, CampaignDTO PaycentoCampaign); 

나는 다음과 같은 방법으로이 방법에 데이터를 보내려고 해요 : 나는 문제가 날짜 시간 proprties에 의해 발생되는 것을 발견

public static HttpWebResponse DoHttpWebRequest(String url, String method, string data) 
{ 
    HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; 
    req.KeepAlive = false; 
    req.ContentType = "application/xml"; 
    req.Method = method; 
    if ((method.Equals("POST") || method.Equals("PUT")) && data != null) 
    { 
     byte[] buffer = Encoding.UTF8.GetBytes(data); 
     Stream PostData = req.GetRequestStream(); 
     PostData.Write(buffer, 0, buffer.Length); 
     PostData.Close(); 
    } 
    return req.GetResponse() as HttpWebResponse; 
} 

디버깅 시간 후. 나는 '수동으로'XML을 생성하고 속성마다 속성을 수행하기 시작했습니다.

sb.Append("<Startdate>").Append(HttpUtility.HtmlEncode(Startdate.ToString(Helper.DATE_FORMAT_STRING))).Append("</Startdate>"); 

toString에서 형식 (ddMMyyyy)을 추가하려고했지만 여전히 잘못된 요청의 원인이됩니다. ASP.NET에서 DTO로 파싱 할 수 있도록 XML에 DateTime 속성을 어떻게 추가해야합니까?

물건은 내가 시도 :

  • StartDate.ToLongDateString()
  • StartDate.ToString()
  • StartDate.toString ("ddhhyyyy")
  • StartDate.Ticks을
+0

@HenkHolterman 서비스가 유효한 서비스임을 인식하지 못합니다. – Reinard

+0

시도에서 GetResponse를 감싸고이 질문에 대한 응답의 코드를 사용하십시오. http://stackoverflow.com/questions/9948367/cant-get-actual-error-in-response-for-rest-request-fiddler-shows- me-more-error/9948511 # 9948511 서버에서 실제 응답을 얻으려면이 역시 게시하십시오. – JamieSee

+0

@JamieSee 지역 변수를 – Reinard

답변

1

StartdDate.toString ("s")이 트릭을 수행했습니다.