Обновите Milestone, используя BaseCamp API и c # - PullRequest
0 голосов
/ 02 ноября 2011

Я не могу понять, как обновить веху в baseCamp с помощью API.Я могу делать все остальное (создавать, завершать, не завершать и удалять).Но я застрял на обновлении.Я продолжаю получать ошибку 406.

HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(myURL);
_request.ContentType = "application/xml";
_request.Accept = "application/xml";
_request.Method = "POST";
_request.ServicePoint.Expect100Continue = false;
_request.Credentials = new NetworkCredential("xxxxMYKEYxxxx", "X");

byte[] byteData = UTF8Encoding.UTF8.GetBytes(RequestData);
_request.ContentLength = byteData.Length;
using (Stream stream = _request.GetRequestStream())
{
    stream.Write(byteData, 0, byteData.Length);
}

myURL является правильным в соответствии с API: https://mycompany.basecamphq.com/projects/8040830/calendar_entries/20940505.xml

И мои данные запроса выглядят корректно:

<request>
 <calendar-entry>
  <title>My New Milestone - Renamed</title>
  <type>Milestone</type>
 </calendar-entry>
</request>

Однако, это всегда бомбы с "(406) Недопустимо "ошибка на

_request.GetResponse();

Кто-нибудь может увидеть что-то вопиющее?Я новичок в новом REST API.Я могу делать все с записями календаря, используя API.Я просто не могу понять, обновление.Есть идеи?

1 Ответ

0 голосов
/ 03 ноября 2011

Ради любви Пита !!!!!

Хотя в документации четко указано, что операция обновления - это POST, на самом деле это PUT. Мне нравится, когда плохая документация стоит мне много времени. По крайней мере, это может помочь любому из вас, кто имеет ужасную привычку следовать указаниям.

Вот их документация на http://developer.37signals.com/basecamp/calendar-entries.shtml

Обновить запись календаря
POST /projects/# enjproject_id‹/calendar_entries/# enjidilitary.xml
Изменяет запись в календаре. Предоставление другого значения для «типа» может преобразовать событие календаря в этап и наоборот. Вы можете использовать это, чтобы сдвинуть крайний срок одного этапа и, при необходимости, сдвинуть крайний срок последующих этапов

.

...