Я пытаюсь отправить документ (любой тип файла) на сервер GLPI через API REST.
Вот что я делаю:
private void button11_Click(object sender, EventArgs e)
{
using (var client = new HttpClient())
{
using (var content = new MultipartFormDataContent())
{
var rcontent = string.Empty;
// HEADERS (URL + Access Tokens)
//string _ContentType = "multipart/form-data";
string _Uri = Properties.Settings.Default.GLPI_URL + "/Document/";
client.BaseAddress = new Uri(_Uri);
//client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_ContentType));
client.DefaultRequestHeaders.Add("Session-Token", Properties.Settings.Default.GLPI_SESSION_TOKEN);
client.DefaultRequestHeaders.Add("App-Token", Properties.Settings.Default.GLPI_APP_TOKEN);
// JSON Content (input string array with file uploaded informations)
JSON_C.DocumentAdder JSONContent = new JSON_C.DocumentAdder();
JSONContent.name = "sth";
JSONContent._filename = filebytes;
HttpContent _JSONContent = new StringContent("uploadManifest={\"input\": " + JsonConvert.SerializeObject(JSONContent).ToString() + "}", Encoding.UTF8, "application/json");
content.Add(_JSONContent);
// File Content in bytes
var fileContent = new ByteArrayContent(filebytes);
fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("_filename") { FileName = filepath };
//fileContent.ReadAsByteArrayAsync();
content.Add(fileContent);
// Request
HttpResponseMessage reponse;
var _Method = new HttpMethod("POST");
reponse = client.PostAsync(_Uri, content).Result;
// Request response
rcontent = reponse.Content.ReadAsStringAsync().Result;
textBox2.Text = reponse.ToString() + Environment.NewLine + rcontent.ToString();
}
}
}
Но эточто я получил в ответ:
StatusCode: 400, ReasonPhrase: «Bad Request», версия: 1.1, Content: System.Net.Http.StreamContent, заголовки:
{
Connection: закрыть
Cache-Control: нет хранилища, необходимо повторное подтверждение, нет кэша
Дата: понедельник, 26 ноября 2018 12:50:09 GMT
Сервер: Apache / 2.4.29
Сервер: (Ubuntu)
Длина содержимого: 61
Тип содержимого: application / json;charset = UTF-8
Срок действия истекает: понедельник, 26 июля 1997 г. 05:00:00 GM
}
с:
["ERROR_UPLOAD_FILE_TOO_BIG_POST_MAX_SIZE",«Файл кажется слишком большим»]
Файл, который я пытаюсь загрузить, имеет размер 592 байта!Максимальный общий лимит в одном запросе составляет 2Мо.И post_max_size
в php.ini - "8M", тот же результат после того, как я изменил его на "0" (без ограничений).А затем установите его на 20M, чтобы он соответствовал upload_max_filesize
(/etc/php/7.2/apache2/php.ini).
upload_max_filesize
_ .. также "20M"