Пакет: matlab.net.http. iO
Суперклассы: matlab.net.http. iO . ContentConsumer
Потребитель для файлов в сообщениях HTTP
Класс FileConsumer
обеспечивает удобный способ загрузить файл с веб-сервиса или сохранить данные, полученные от сети в файле. Можно задать имя файла или позволить MATLAB® определить имя от информации, отправленной сервером или файлом с именем в URI.
создает consumer = FileConsumer(filename,permission,machineformat,encoding)
FileConsumer
, который создает или перезаписывает файл с полезной нагрузкой ответа с сервера. Параметры имеют то же значение как те из функции fopen
, и все являются дополнительными.
устанавливает свойство consumer = FileConsumer(FID)
FileIdentifier
на FID
и пишет в тот файл. FID
должен быть идентификатором файла, который вы открыли для записи. MATLAB пишет в файл в индикаторе текущего положения, поэтому если вы открываете существующий файл с помощью разрешения 'a+'
, например, MATLAB добавляет к файлу. Когда передача завершается, MATLAB оставляет индикатор положения в конце файла и не закрывает файл.
fileName
Имя файла или имя папкиИмя файла или имя папки, включая полный путь и дополнительное расширение, заданное как вектор символа или скаляр строки. Чтобы определить имя файла, который создает MATLAB, смотрите свойство Filename
.
Если filename
задает файл в существующей папке, то MATLAB:
Открывает файл с помощью fopen(filename,permission,...)
.
Если permission
не задан, то открывает файл с помощью fopen(filename,'w+')
.
Если filename
не включает расширение, то MATLAB добавляет один на основе поля заголовка Типа контента и/или Довольного Расположения в полученном сообщении или расширении имени файла в URI запроса, если таковые имеются.
Если filename
задает существующую, перезаписываемую папку, то MATLAB создает файл в папке с именем, выведенным от поля заголовка Довольного Расположения в ответе или от URI, возможно добавляя расширение на основе Типа контента, если то имя не содержит тот.
Если filename
отсутствует или пустой, то MATLAB создает файл в текущей папке. Это эквивалентно filename
= '.'
. Текущая папка является папкой в то время, когда этот FileConsumer
был создан, не время, этот потребитель используется в запросе send
.
Пример: 'myTextFile. txt
Типы данных: char | string
permission
— Тип доступа к файлуw+
(значение по умолчанию) | u+
| u
| T
| значение позволен функцией fopen
Тип доступа к файлу, заданный как строка. Если permission
задан, он должен позволить доступ для записи. Значением по умолчанию является 'w+'
, который открывает или создает файл для чтения и записи и отбрасывает существующее содержимое, если таковые имеются.
permission
может быть любым значением, позволенным функцией fopen
. Следующие дополнительные значения permission
поддержаны:
|
То же самое как Например, если |
|
Когда добавлено к разрешению, ведет себя так же к текстовому режиму |
Во всех случаях, для 'w'
и полномочий 'w+'
(или если permission
не задан), MATLAB не перезаписывает существующий файл, если имя файла не точно равно filename
.
Пример: ''
' w+T'
Типы данных: char | string
machineformat
— Порядок для чтения или записи байтов или битовfopen
Порядок для чтения или записи байтов или битов, заданных как любое значение, позволен функцией fopen
.
Типы данных: char | string
encoding
— 'CharacterEncoding' fopen
Кодировка символов, заданная как любое значение, позволена функцией fopen
.
Типы данных: char | string
FileIdentifier
— Идентификатор файлаИдентификатор файла (FID), записанный, заданный как дважды. Если потребитель был создан с аргументом FID, то это свойство является идентификатором. Данные записаны в текущий индикатор позиции в файле, сопоставленный с этим идентификатором, таким образом, подклассы должны бояться менять положение случайно при использовании этого идентификатора. В конце передачи файл остается открытым, и положение остается в конце файла.
Если конструктор был вызван аргументом filename
, или без аргументов, то это свойство является идентификатором файла только для чтения для того файла. Это позволяет подклассам читать файл во время передачи, не нарушая индикатор положения, используемый для записи. В конце передачи закрывается этот идентификатор.
Это свойство доступно только для чтения.
Атрибуты:
GetAccess | public |
SetAccess | private |
FileName
Имя пути к файлустрока. пустое
(значение по умолчанию) | строкаИмя полного пути файла, записанного, заданного как строка. Если потребитель был создан с аргументом FID, то это свойство является именем файла. В противном случае это значение не может быть установлено, пока MATLAB не начал писать в файл во время получения сообщения ответа, поскольку имя файла не может обязательно быть определено, пока все заголовки не были получены. Используйте это свойство определить файл, который был записан. Filename
также сохранен в свойстве Response.Body.Data
.
Это свойство доступно только для чтения.
Атрибуты:
GetAccess | public |
SetAccess | private |
AllocationLength
— Предложенный buffer sizeuint64
Предложенный buffer size, заданный как uint64
. MATLAB устанавливает AllocationLength
на ожидаемый размер буферов данных, переданных методу putData
. Фактический размер может быть меньшим или больше. Чтобы улучшить производительность, потребитель может использовать это значение, чтобы предварительно выделить пробел, чтобы обработать данные.
MATLAB устанавливает это свойство прежде, чем вызвать start
для удобства подклассов.
Атрибуты:
GetAccess | public |
SetAccess | public |
ContentLength
— Ожидаемая длина полезной нагрузкиuint64
| пустойОжидаемая длина полезной нагрузки, заданной как uint64
. Свойство обычно является свойством Value
matlab.net.http.field.ContentLengthField
в свойстве Header
.
Если ContentLength
пуст, то длина не известна. Полезная нагрузка заканчивается, когда putData(uint8.empty)
называется.
MATLAB устанавливает это свойство прежде, чем вызвать initialize
для удобства подклассов, которые могут извлечь выгоду из знания длины данных.
Если этот consumer
является делегатом потребителя верхнего уровня, то значение ContentLength
может отличаться от значения ContentLength
потребителя верхнего уровня.
Атрибуты:
GetAccess | public |
SetAccess | public |
ContentType
MediaType
полезной нагрузкиmatlab.net.http. MediaType
| пустойMediaType
полезной нагрузки, заданной как matlab.net.http.MediaType
object. свойство обычно, является свойством Value
matlab.net.http.field.ContentTypeField
в свойстве Header
. Если свойство ContentType
пусто, то ContentTypeField
пуст или не существует.
MATLAB устанавливает это свойство прежде, чем вызвать initialize
для удобства подклассов, которые могут хотеть исследовать MediaType
. Подклассы могут установить это свойство, если они решают от данных, что это имеет различный MediaType
.
В конце передачи MATLAB копирует это значение в свойство Response.Body.ContentType
.
Атрибуты:
GetAccess | public |
SetAccess | public |
Header
— Заголовок полезной нагрузкиmatlab.net.http. HeaderField
Заголовок полезной нагрузки, в настоящее время обрабатываемой, заданный как matlab.net.http.HeaderField
object.
Потребители используют этот заголовок, чтобы определить, как обработать полезную нагрузку, которая отправляется им. Для потребителя верхнего уровня это значение совпадает со свойством Response.Header
. Для делегата значение может отличаться. Например, в многослойном сообщении, обработанном MultipartConsumer
, это - заголовок части, которую обрабатывает этот делегат. Делегат может все еще исследовать Response.Header
на заголовки исходного сообщения.
MATLAB устанавливает это свойство прежде, чем вызвать initialize
для удобства подклассов.
Атрибуты:
GetAccess | public |
SetAccess | public |
Request
— Завершенный RequestMessage
, который был отправленmatlab.net.http. RequestMessage
Завершенный RequestMessage
, который был отправлен, задал как matlab.net.http.RequestMessage
object., Это - итоговый RequestMessage
после всех перенаправлений. Для значения смотрите выходной аргумент completedrequest
от метода matlab.net.http.RequestMessage.send
.
MATLAB устанавливает это свойство прежде, чем вызвать initialize
для удобства подклассов.
Атрибуты:
GetAccess | public |
SetAccess | public |
Response
— ResponseMessage
обрабатываетсяmatlab.net.http. ResponseMessage
ResponseMessage
, обрабатываемый, заданный как matlab.net.http.ResponseMessage
object.
MATLAB устанавливает свойство Response
прежде, чем вызвать initialize
. Значением является ResponseMessage
после того, как заголовки были получены, но прежде, чем получить любую полезную нагрузку. В начале обработки сообщения ответа (или запуск части для многослойных сообщений), свойство ResponseMesssage.Body
является объектом MessageBody
с пустыми свойствами Data
и Payload
. Чтобы хранить полученные данные, потребители могут изменить свойства Response
и MessageBody.Data
во время передачи данных. Обычно, потребители, что процесс и затем хранит набор данных Response.Body.Data
к их обработанной полезной нагрузке, хотя это не требуется. При завершении передачи MATLAB возвращает этот Response
в вызывающую сторону matlab.net.http.RequestMessage.send
., Потребители не должны изменять другие свойства Response
, такие как Header
или StatusLine
, когда те изменения возвращены в вызывающую сторону send
.
Свойство Response.Body.Payload
пусто во время передачи, и потребители не должны пытаться изменить его. Если свойство HTTPOptions.SavePayload
установлено, то MATLAB устанавливает Payload
на полученную полезную нагрузку в конце передачи сообщения или части (после вызова putData(uint8.empty)
) или когда исключение происходит.
Если исключение происходит в потребителе во время обработки сообщения, то MATLAB выдает объект HTTPException
. Свойство History
содержит это значение Response
.
Если потребитель является делегатом, который обрабатывает часть многослойного сообщения, то Response.Header
содержит заголовок целого сообщения, и свойства Payload
и Data
Response.Body
очищены прежде, чем вызов ContentConsumer
для каждой части. В конце каждой части новый ResponseMessage
добавляется в конец массива объектов ResponseMessage
в Body.Data
исходного ответа, содержащем Header
от этого объекта и Body
из этого свойства. Следующий делегат видит новый Response
с пустым MessageBody
, не MessageBody
предыдущего делегата.
Атрибуты:
GetAccess | public |
SetAccess | public |
URI
Место назначения запросаmatlab.net. URI
Место назначения запроса, обрабатываемого, заданного как matlab.net.URI
object. Это значение, является исходным целевым URI, как определено matlab.net.http.RequestMessage.send
., Это не URI прокси или итоговый URI после перенаправлений.
MATLAB устанавливает это свойство прежде, чем вызвать initialize
для удобства подклассов.
Атрибуты:
GetAccess | public |
SetAccess | public |
AppendFcn
— Функция, вызванная putData
, чтобы добавить дополнительные данныеФункция, заданная как указатель на функцию, вызванный методом putData
, чтобы добавить дополнительные данные. Метод putData
в этом классе вызывает функцию AppendFcn
, чтобы добавить данные, которые это получает в ее аргументе data
к существующим данным в сообщении ответа. Функция должна иметь подпись:
AppendFcn(consumer,newdata)
где newdata
является данными, которые будут добавлены к массиву в consumer.Response.Body.Data
Данные. Это - ответственность этого метода обновить consumer.CurrentLength
, чтобы отразить новую длину Data
. Если newdata
пуст, который указывает на конец потока, то функция должна обновить Response.Body.Data
к своему окончательному значению.
Поведение по умолчанию, если это свойство пусто, использует внутреннюю функцию, которая обрабатывает Data
как массив произвольных значений, поддерживающих функцию horzcat
. Это эффективно добавляет newdata
путем предварительного выделения пробела, поддержания CurrentLength
, чтобы быть фактической длиной хранивших данных. В конце сообщения это обрезает Response.Body.Data
до CurrentLength
.
Если horzcat
не подходит для добавлять процесса, то подклассы могут изменить это свойство. Например, когда StringConsumer
создает скалярную строку, он добавил бы к строке с помощью функции plus
вместо horzcat
.
Подклассы, которые не вызывают ContentConsumer.putData
, чтобы добавить данные, или которые удовлетворены поведением horzcat
при добавлении данных, могут проигнорировать это свойство.
Атрибуты:
GetAccess | protected |
SetAccess | protected |
CurrentDelegate
— Делегированный ContentConsumer
matlab.net.http. iO . ContentConsumer
| []
ContentConsumer
, к которому этот потребитель делегирует, заданный как объект matlab.net.http.io.ContentConsumer
. Метод delegateTo
потребителя вызова (delegator) устанавливает свойство CurrentDelegate
. Если нет никакой текущей делегации, то значением является []
.
Атрибуты:
GetAccess | protected |
SetAccess | protected |
CurrentLength
— Длина данных в настоящее время в Response.Body.Data
uint64. пустое
(значение по умолчанию) | uint64
Длина данных в настоящее время в свойстве Response.Body.Data
, заданном как uint64
.
Это свойство используется, когда Response.Body.Data
был предварительно выделен размеру, больше, чем фактический объем данных, в настоящее время сохраненный, чтобы указать на длину хранившие данные. Если это свойство пусто, то это означает, что весь Response.Body.Data
содержит хранившие данные или что подкласс ContentConsumer
избавляется от данных в некотором роде кроме хранения его в Response.Body.Data
Данные.
Это свойство используется и устанавливается методом putData
в этом базовом классе, когда свойство AppendFcn
пусто. Именно в пользу подклассов вызывают putData
и хотят исследовать уже сохраненные данные и/или любые реализации AppendFcn
, которые поддерживают результаты в Response.Body.Data
Данные.
Подклассы, которые используют putData
также, могут изменить это свойство сбросить положение в буфере, где данные хранятся. Например, когда функция AppendFcn
по умолчанию используется, подкласс, что процессы весь Response.Body.Data
на каждом вызове putData
больше не могут иметь использования для исходных данных, таким образом, это может сбросить свойство CurrentLength
к 1 так, чтобы следующий вызов putData
перезаписал буфер с новыми данными. Нет никакой потребности очистить элементы в буфере мимо конца новых данных.
Подклассы, которые не вызывают putData
, могут использовать это свойство отследить их собственные данные или могут оставить его, сбросил (пустой). MATLAB не помещает ограничений на значение, которое может быть установлено здесь и не использует его ни для какой цели кроме определить, где AppendFcn
по умолчанию должен сохранить следующий буфер данных, и где обрезать данные в конце сообщения. Установите это свойство опустеть перед итоговым вызовом putData(uint8.empty)
, чтобы предотвратить усечение данных.
MATLAB устанавливает это свойство опустеть перед каждым вызовом initialize
.
Атрибуты:
GetAccess | protected |
SetAccess | protected |
MyDelegator
— ContentConsumer
, который делегировал этому потребителюmatlab.net.http. iO . ContentConsumer
| пустойContentConsumer
, который делегировал этому потребителю, заданному как объект matlab.net.http.io.ContentConsumer
. Если другой потребитель вызвал этого потребителя как делегата, такого как GenericConsumer
или MultipartConsumer
, то этот потребитель является потребителем вызова. Это пусто в потребителе верхнего уровня, заданном в вызове matlab.net.http.RequestMessage.send
.
Делегаты могут использовать это свойство получить доступ к свойствам их delegators, например, определить, который потребитель делегировал им.
Атрибуты:
GetAccess | protected |
SetAccess | protected |
putData | Сохраните следующий буфер данных к файлу для FileConsumer |
запуск | Запустите передачу файла к FileConsumer |
delegateTo | Делегируйте другому потребителю |
инициализировать | Подготовьте потребителя к новой полезной нагрузке HTTP |
putData | Процесс или сохраняет следующий буфер данных для ContentConsumer |
запуск | Запустите передачу данных HTTP к ContentConsumer |
ContentConsumer
| FileProvider
| fopen
| matlab.net.http. RequestMessage
| matlab.net.http. ResponseMessage
| matlab.net.http.field. ContentTypeField
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.