2015-05-12 2 views
2

Я немного борюсь с моим проектом с Attask. Моя цель - обновить alignmentValues ​​проекта, используя данные пользовательской формы. Я смог создать новые значения выравнивания для обновления, но я не могу выполнить его с помощью метода put ... запрос, который я хочу выполнить,Обновление параметров проекта в AtTask с использованием метода старта restsharp

PUT /attask/api/project/4c7...?updates= 
{ 
    alignmentValues: [ 
     { 
      scoreCardOptionID: "2222...54d0", 
      scoreCardQuestionID : "8897...54d1",... 
     },.... 
        ] 
} 

мой фрагмент кода

var request = new RestRequest("project/{id}", Method.PUT); 
request.AddUrlSegment("id", pid); 
request.RequestFormat = DataFormat.Json; 
JObject _putData = new JObject(); 
_putData.Add("alignmentValues",newAnswers); 

и обновления объекта я попытался несколько комбинаций

request.AddParameter("updates",_putData,ParameterType.RequestBody); //no effect 
request.AddBody(new {name = "updates", value = _putData}); //no effect 

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

var request = new RestRequest("project/{id}?updates=" + _putData , Method.PUT); 

Выше работает, если _putData мало ... как имя = «TEST». .Но не выполняется для большого массива JSon ..

Любые предложения о том, как обновить значения с помощью addbody/AddObject/addjsonobject/addparameter ... потому что мне нужно отправить запрос в организме из-за его большого размера ...

Спасибо заранее.

+0

Я также использовал скрипач для просмотра запроса ... запрос работает, если параметры передаются как querystring ... но если одни и те же параметры в том же формате отправляются через тело, то ничего не происходит ... Кто-то сталкивается или сталкивается с подобной проблемой? –

ответ

0

Ну, это не ответ, но я сделал это для работы с помощью fluke .. ТАК главная проблема по-прежнему остается. Я не могу использовать тело с запросом PUT. Даже если я использую его шоу без результата. поэтому мне пришлось идти только с строкой запроса ... Теперь для моей проблемы с большими параметрами в строке запроса я отправил весь объект alignmentvalues, где мне пришлось обновлять только два поля внутри этого объекта. Итак, в процессе проб и ошибок я только передал три поля в идентификаторе объекта - ответ и два поля, которые нужно обновить ... И это уменьшило размер строки запроса, и, к счастью, для меня это сработало.