Почему я получаю сообщение об ошибке «Метод не реализован» при попытке удалить тестового пользователя Facebook - PullRequest
2 голосов
/ 08 февраля 2011

Я использую Java DefaultHttpClient, предоставленный Apache, для выдачи удаления тестового пользователя, которого мы зарегистрировали через описанную здесь конечную точку / app_id / accounts / test-users http://developers.facebook.com/docs/test_users/

ответом является следующий HTML-код:

<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
Invalid method in request<P>
</BODY></HTML>

Использование DefaultHttpClient для POST и GET для тестовых пользователей api работает нормально, проблема заключается только в отправке DELETE. Тем временем я также могу выполнить DELETE (для тех же пользователей и токенов доступа), используя скрипт Python, curl и расширение клиента Firefox REST.

Кто-нибудь знает, что означает ошибка или есть какие-либо известные проблемы / ошибки при использовании DefaultHttpClient с API Graph Facebook?

Обновление: я попытался проанализировать различные запросы, используя tcpdump, как предложил Питер в комментариях: sudo tcpdump -i eth2

Но все, что я вижу, - это пакеты, идущие туда-обратно между мной и Facebook, кажется, это немного низкоуровневый подход к диагностике проблемы.

1 Ответ

5 голосов
/ 09 февраля 2011

Кажется, что Facebook не хочет принимать DELETE-запросы с контентом, и по какой-то причине DefaultHttpClient (и HttpUrlConnection, я тоже это пробовал) либо не устанавливают заголовок длины контента, либо устанавливают его с положительным значением.Исправление, которое я обнаружил, состоит в том, чтобы вручную установить заголовок длины содержимого на ноль.Например:

HttpDelete deleteMethod = new HttpDelete(url);
deleteMethod.setHeader("Content-Length", "0");


HttpResponse httpResponse = client.execute(deleteMethod);
String responseContent = EntityUtils.toString(httpResponse.getEntity(),"UTF-8");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...