Box.com создать/обновить папку из Salesforce, используя API v2

Я пытаюсь создать новую папку в Box из класса контроллера в Salesforce, используя API версии 2. Я получаю токен доступа, и мне также удалось получить элементы папки с помощью запроса HTTP GET. Но я не могу создать новую папку в BOX. Также не удалось скопировать файлы из 1 папки в другую или обновить информацию о папке. Ниже приведен код для обновления описания моей папки:

 Http h = new Http();
        HttpRequest req = new HttpRequest();
        string endPointValue = 'https://api.box.com/2.0/folders/myfolder_id';
        req.setEndpoint(endPointValue);
        req.setHeader('Authorization', 'Bearer ' + myaccessToken);
        req.setBody('description=' + EncodingUtil.urlEncode('New', 'U`enter code here`TF-8'));       
        req.setMethod('POST');
        HttpResponse res = h.send(req); 


I am getting the following response:
{"type":"error","status":400,"code":"bad_request","context_info":{"errors":[{"reason":"invalid_parameter","name":"entity-body","message":"Invalid value 'description=New'. Entity body should be a correctly nested resource attribute name\/value pair"}]},"help_url":"http:\/\/developers.box.com\/docs\/#errors","message":"Bad Request","request_id":"my request Id"} 


Can anyone help me on this?
Thanks in advance!

person user3607700    schedule 06.05.2014    source источник


Ответы (1)


Согласно документации здесь, Box API ожидает параметры запроса в формате JSON, а метод запроса должен быть PUT. Попробуйте следующее:

Http h = new Http();
HttpRequest req = new HttpRequest();
string endPointValue = 'https://api.box.com/2.0/folders/myfolder_id';
req.setEndpoint(endPointValue);
req.setHeader('Authorization', 'Bearer ' + myaccessToken);
req.setBody('{"description" : "New folder description"}');       
req.setMethod('PUT');
HttpResponse res = h.send(req); 

P.S. вы также неправильно использовали метод EncodingUtil.urlEncode(). Первый параметр должен быть строкой, которую вы пытаетесь сделать URL-безопасной, а второй параметр — кодировкой (см. документацию здесь)

person IvanR    schedule 06.05.2014