2016-11-22 6 views
0

찾은 지침을 따르려고했으나 여전히 작동하지 않습니다.XML을 사용할 때 ASP.NET 웹 API가 객체에 대해 NULL을 반환합니다.

나는 클라이언트 측 I에 다음 줄

config.Formatters.XmlFormatter.UseXmlSerializer = true; 

내가 추가 한 나의 WebApiConfig.cs에서

public IHttpActionResult Post([FromBody]TodoItem item) 
    { 
     if (item != null) 
     { 
      TodoRepository.Current.Add(item); 
      return Ok(item); 
     } 
     return BadRequest("Object is null"); 
    } 

을 POST 방법을 다음과 같은 클래스

public class TodoItem 
{   
    public int Id { get; set; }   
    public string Name { get; set; }   
    public bool IsComplete { get; set; } 
    public TodoItem() { } 
} 

내 서버를 한 다음 한 다음과 같이 HttpClient를 사용하고 있습니다.

var postTask = client.PostAsXmlAsync<TodoItem>("", item); 

서버의 내 게시물 메서드는 항목 개체에 대해 null을받습니다.

+0

난에 URL을 볼 수 없습니다 보인다

public static class HttpExtensions { public static Task<HttpResponseMessage> PostAsXmlWithSerializerAsync<T>(this HttpClient client, string requestUri, T value) { return client.PostAsync(requestUri, value, new XmlMediaTypeFormatter { UseXmlSerializer = true }); } } 

확장 방법에 따라 추가 너의 전화. 예 : var respone = await httpClient.PostAsXmlAsync (requestUri, Item); ' 메소드가 호출되는 방식은 무엇입니까? –

+0

URL은 다음과 같이 설정됩니다.'client.BaseAddress = new Uri ("http : // localhost : 5342/api/todos /");'postTask = client.PostAsJsonAsync를 사용할 때 완벽하게 작동합니다. ("", item); ' –

+0

당신은 대답 [여기] (http://stackoverflow.com/a/25494252/309395)를 시도해 주시겠습니까 –

답변

0

덕분에,의 도움으로 문제를 해결 Nilesh Thakkar

나는 HttpClient를에서 호출 지금

var postTask = client.PostAsXmlWithSerializerAsync<TodoItem>("", item); 
관련 문제