タスクオブジェクトでmarkDoneアクションを利用しようとしています。私の推測では、これはPUTですが、POSTを試しました。私はまだPUTまたはPOSTのパラメータを使ってGETを試してみましたが、次に試してみます。しかし、私はこのルートに行かない方がいいです。私はWeb APIをかなり新しくしています。これは、別のAPIと会話するAPIを作成するための最初の試みです。私はHttpClientオブジェクトを利用していて、PostAsyncとPutAsyncを試しました。以下は私が現在持っているものです。タスクオブジェクトのmarkDone
using (var apiManagementSystem = new HttpClient())
{
apiManagementSystem.BaseAddress = new Uri("https://xxxxxxx.preview.workfront.com/attask/api/");
apiManagementSystem.DefaultRequestHeaders.Clear();
apiManagementSystem.DefaultRequestHeaders.Add("SessionID", "xxxxxxx");
HttpContent httpContent = new StringContent("?ID=xxxxxxx&action=markDone&status=CPL");
HttpResponseMessage responseMessage = apiManagementSystem.PutAsync("Task", httpContent).Result;
}
上記のコードが正しいかどうかわからなくても、URLがどのようなものか、ヘッダーがあるべきかを知ることができます。
を実行するには、C#のコードは、私はこれをしようとして行ってしまった、それは私のために働いていないです。私は400を取得しており、WorkFrontはNo Assignmentのメッセージを返しています。しかし、私はIDを取得することができますし、私のオブジェクトを返します。 –
私が気づいたことの1つはあなたのURLでした。私はdomain/attask/api/task/xxxxxを試しています。ドメイン/アタスク/ api/v6.0を持っています。私は他の人たちもこのアプローチを使っているのを見ました。私のURLにバージョンがない場合、私は400を取得します。バージョンをターゲットにすると、同じエラーで403(禁止されています)が表示されます。これは、バージョンなしのURLに対する私の要求が実際にアクセス許可の問題であると私に言います。私は、最新バージョンのAPIをバージョンターゲットから離れると仮定しています。これは正しいです? –
もう1つ注意すべき点は、私はnullとしてHttpContentオブジェクトを持っていることです。私はあなたがC#で作業していないことを知っていますが、あなたや他の人を助けた場合に備えて、ここに置くべきであると思いました。 –