Ошибка 400 при публикации новой темы и файла в Brightsapce API - PullRequest
3 голосов
/ 10 июня 2019

Использование PHP с жадностью Я пытаюсь опубликовать новую тему с файлом в API Brightsapce согласно https://docs.valence.desire2learn.com/res/content.html#post--d2l-api-le-(version)-(orgUnitId)-content-modules-(moduleId)-structure-

Используя потоки жадности, я создал запрос, который выглядит следующим образом.

--xxBOUNDARYxx

content-type: application/json

Content-Disposition: form-data; name=""

Content-Length: 223



{"Title":"Placeholder, Please Delete","ShortTitle":"","Type":1,"TopicType":1,"Url":"\/content\/enforced\/376743-TKS101_TRI-3_2014\/test.html","StartDate":null,"EndDate":null,"DueDate":null,"IsHidden":false,"IsLocked":false}

--xxBOUNDARYxx

content-type: text/html

Content-Disposition: form-data; name=""; filename="test.html"

Content-Length: 477



<!DOCTYPE html>
<!--
... 
        $multipart_mixed = [
            [
                'name' => "",
                'headers' => [
                    'content-type' => "application/json",
                ],
                'contents' => json_encode($contentObjectData->toArray())
            ],
            [
                'name' => "",
                'headers' => [
                    'content-type' => mime_content_type($file),
                    'Content-Disposition' => "form-data; name=\"\"; filename=\"$fileName\""
                ],
                'contents' => file_get_contents($file)
            ]
        ];

        $headers = ['Content-Type' => 'multipart/mixed;boundary=xxBOUNDARYxx'];

        $body = new MultipartStream($multipart_mixed, $boundary); 

        $uri = $this->valenceInstance->authenticateUri("/d2l/api/le/$this->le_version/$orgUnitId/content/modules/$moduleId/structure/?base64=false", "POST");

        return new Request("POST", $uri, $headers, $body);

Похоже, что все работает в соответствии с документацией, но я всегда получаю «Запрос содержит отсутствующие или недопустимые параметры». Я не вижу, какой параметр я могу пропустить?

1 Ответ

1 голос
/ 10 июня 2019

Это было решено заглавными буквами "тип контента"

...