2010-01-15 4 views
5

Я пытаюсь создать клиент 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, но без успеха.

+0

Из интереса, вы пробовали использовать браузер для выполнения GET? –

+0

Yup. Кроме того, при использовании POST ответ, который я получаю с сервера, представляет собой ошибку 400 с некоторым текстом, в котором говорится, что я должен использовать GET вместо POST. –

+0

Ответ, который я получаю с сервера при использовании WCF, это {"request": "/ statuses/public_timeline.json", "error": "Этот метод требует GET."} –

ответ

6

Я использовал службу WCF для выполнения некоторой работы, а затем вызвал другую службу WCF. Это была вторая служба, о которой говорилось выше. Проблема заключалась в том, как была реализована первая услуга.

Решение здесь: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/03a2b109-c400-49d4-891e-03871ae0d083/#416d8cbc-b855-46aa-8a6d-5d6b09db97b6

Смежные вопросы