Я пытаюсь создать клиент WCF, который обращается к API REST. API требует, чтобы GET использовался для определенного вызова, поэтому я использую атрибут [WebGet] для этого метода. Однако, когда я вызываю метод, фактический вызов, который создается, является POST (просматривается с помощью Fiddler). Мой контракт, как показано ниже:
Метод WCF, отправляющий POST вместо GET
[OperationContract]
[WebGet(UriTemplate = "/statuses/public_timeline.json",
BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
List<Status> PublicTimeline();
Я также попытался с помощью [WebInvoke] с методом GET, но без успеха.
Из интереса, вы пробовали использовать браузер для выполнения GET? –
Yup. Кроме того, при использовании POST ответ, который я получаю с сервера, представляет собой ошибку 400 с некоторым текстом, в котором говорится, что я должен использовать GET вместо POST. –
Ответ, который я получаю с сервера при использовании WCF, это {"request": "/ statuses/public_timeline.json", "error": "Этот метод требует GET."} –