Данные JSON должны быть отправлены в тело запроса для его десериализации, а не в строке запроса/URL-адресе браузера.
Кроме того, 'string userInfo' не будет работать так, как вы ожидаете. Вы можете определить класс, который представляет параметры вашего объекта JSON, и он будет работать правильно.
Это будет работать, например:
public class UserInfo
{
public int Id { get; set;}
public string UserName { get; set;}
public string Email { get; set;}
}
и изменить эту строку:
public HttpResponseMessage GetUniqueUserByEmail(UserInfo userInfo)
Edit:
Если это URL, что кто-то должен пройти в использовании маршрутизации:
https://site/api/UniqueUser/1/Jxj Bdn/[email protected]
И в контроллере:
[Route("api/UniqueUser/{id}/{userName}/{email}")]
public HttpResponseMessage GetUniqueUserByEmail(int id, string userName, string email)
Посмотрите сюда, чтобы посмотреть, как сделать это с помощью традиционных параметров строки запроса также:
http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
Я бы настоятельно рекомендуем использовать первый метод, хотя, дает вам объект с категориальным типом и намного легче справиться с изменением деталей, и вы получите преимущество сборки в проверке модели.
Не можете ли вы создать простую форму HTML для ваших клиентов?
как я говорю, что это приложение-сервис, поэтому мне нужно дать пользователю только URL-адрес больше ничего, в этой ситуации я делаю. – shamim
Я обновлю свой ответ –