Я пишу приложение .NET, которое будет разговаривать с JSON-API, чтобы вытащить/сдвинуть данные. Я видел аналогичный вопрос: Consuming a RESTful JSON API using WCFComsuming REST (JSON) API с использованием WCF
, но мне нужно немного больше информации по тому же вопросу. Вот JSON, что я должен послать в запросе:
{ "логин": { "пароль": "ПАРОЛЬ", "Имя пользователя": "USERNAME"}}
и ответ JSON будет что-то вроде:
{ "ответ": { "статус": "OK", "маркер": "o9b0jrng273hn0"}}
Вот что я придумал:
[ServiceContract]
public interface ITestApi
{
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.Wrapped,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/login"
)]
LoginResponse Login(LoginRequest login);
}
где LoginRequest имеет имя пользователя и пароль свойства и LoginResponse имеет свойство токена.
Когда я вызываю api, запрос выполняется успешно, и я возвращаю ответ, как ожидалось (я проверил это с помощью Fiddler). Но WCF не может создать объект LoginResponse для меня. он всегда равен нулю. Я считаю, что я делаю нечто неправильное, может кто-то, пожалуйста, укажите мне, что я должен сделать, чтобы это исправить?
Это правильный способ создать клиент службы REST на основе JSON? Я использую RESTful api в первый раз, поэтому я больше не знаю об этом.
Все это выглядит хорошо. Ваша проблема заключается в внедрении службы. Отправьте его здесь, и мы сможем помочь. – Aliostad
Как выглядит ваш класс LoginResponse? Он украшен атрибутами DataContract/DataMember? – Garett
Это класс LoginResponse: public class LoginResponse { общедоступный токен строки {get; задавать; } } – Zamacho