Могу ли я получить XML-запрос в ASP.NET веб-API (MVC 4)
Я создал веб-API с помощью asp.net с базовой аутентификацией.
Вот моя ссылка на метод get :
localhost:XXX/api/Products/X1
Но клиенту нужен запрос и ответ в формате XML с включенным в него идентификатором продукта и учетными данными аутентификации .
Пример :
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ssss/"> <wsVersion>1</wsVersion> <id>user1</id> <password>pass1</password> <productID>X1</productID> <ptype>test</ptype> </Request>
это метод контроллера продукта для GET
public HttpResponseMessage Get(string id) { var product = _productService.Get(id); if (product != null) return Request.CreateResponse(HttpStatusCode.OK, product); return Request.CreateErrorResponse(HttpStatusCode.NotFound, "data not found for provided id."); }
Могу ли я изменить формат запроса как XML внутри моего веб-API ? или мне нужно создать для этого сервис WCF ?
Что я уже пробовал:
Нужно ли менять WEBapi на сервис WCF ?
Atlapure Ambrish
В чем была проблема с решением, которое я предоставил?
ali_1
Я использую расширение chrome" Advanced Rest Client". Также добавлены заголовки, упомянутые в формате XML-запроса
URL был localhost:XXX/api/Products/ (без Id, потому что ID уже добавлен в заголовок, Почему он не принимает этот запрос? Сейчас я возвращаю все данные целиком. Нужно ли вносить какие-либо изменения в url-адрес ?
Atlapure Ambrish
Где вы упомянули об этом в своем первоначальном запросе? перед голосованием вы должны поделиться такими подробностями. не так ли??
ali_1
Код контроллера продукта :
Я включил в нем базовую аутентификацию
[ApiAuthenticationFilter]
public class ProductsController : ApiController
{
частная чтения IProductService _productService;
public ProductsController()
{
_productService = new ProductService();
}
# региональные методы
// GET api/Products / id
public HttpResponseMessage Get (string id)
{
продукт ВАР = _productService.Get (id);
if (product != null)
запрос на возврат.CreateResponse(HttpStatusCode.Хорошо, продукт);
запрос на возврат.CreateErrorResponse(HttpStatusCode.NotFound, " данные не найдены для предоставленного идентификатора.");
}
// GET api / продукты
public HttpResponseMessage GetAll()
{
ВАР продукции = _productService.Способность();
если (продукты.Какой-нибудь())
запрос на возврат.CreateResponse(HttpStatusCode.Хорошо, продукты);
запрос на возврат.CreateErrorResponse(HttpStatusCode.Процесс, "нет данных.");
}
***********************************
Сервис код товара :
public string Get (строка i)
{
вернуться _sUnitOfwork.ProductDetails.Get (i);
}
общественного строка способность()
{
вернуться _sUnitOfwork.ProductDetails.Способность();
}
***********************************************************
Код Репозитория Продукта :
public string Get (строка i)
{
/// code здесь возвращает название продукта
возвращение Марка ;
}
/// & lt;резюме>
/// Получить все записи
///
/// & lt;возвращает>
общественного строка способность()
{
// код здесь
возвращает все списки продуктов
}
********************************
http://localhost:** / api/Products/iD, я использовал accept: application/xml, все еще не принимая XML и запрашивая окно для добавления имени пользователя и пароля , если я даю, что он возвращает значения , но не принимая имя пользователя и пароль из XML-запроса от fidler или Advanced rest client