0

API を使用して baseCamp のマイルストーンを更新する方法がわかりません。私は他のすべてを行うことができます (作成、完了、未完了、および削除)。しかし、私は更新に行き詰まっています。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);
}

APIによると、myURLは正しいです: 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) Not Acceptable」エラーで爆撃します。

_request.GetResponse();

ギラギラしたものが見える人はいますか?新しい REST API は初めてです。API を使用して、カレンダー エントリに関するあらゆる操作を実行できます。更新の意味がわからないだけです。何か案は?

4

1 に答える 1

0

ピートの愛のために!!!!!

ドキュメントには更新操作が POST であると明確に記載されていますが、実際には PUT です。質の悪いドキュメンテーションによって何時間もの時間が費やされるのが好きです。少なくとも、これは、指示に従うという恐ろしい習慣を持っているあなたの助けになるかもしれません.

http://developer.37signals.com/basecamp/calendar-entries.shtmlにあるドキュメントは次のとおりです。

カレンダー エントリの更新
POST /projects/#{project_id}/calendar_entries/#{id}.xml
カレンダー エントリ を変更します。「タイプ」に別の値を指定すると、カレンダー イベントをマイルストーンに、またはその逆に変換できます。これを使用して、1 つのマイルストーンの期限をずらすことができ、オプションで後続のマイルストーンの期限もずらすことができます

.

于 2011-11-03T04:16:53.840 に答える