Пакет: matlab.net.http.io
Суперклассы: matlab.net.http.io.ContentProvider
ContentProvider для отправки строк MATLAB
Использовать StringProvider объект для отправки строки или символьного вектора MATLAB ® в RequestMessage. По умолчанию, если RequestMessage.Body.Data содержит вектор строки или символа, затем он преобразуется в двоичный в соответствии с кодировкой (charset), указанной или подразумеваемой полем Content-Type в сообщении, поэтому обычно не требуется использовать этот объект для отправки обычного текста в случаях, когда MATLAB может определить, какую кодировку использовать.
Использовать этот объект в Request.Body для отправки строки, закодированной с использованием набора символов, который может отличаться от того, который MATLAB будет использовать для типа содержимого в заголовке. Вы указываете этот набор символов в ContentProvider конструктора или путем установки Charset собственность. Если сообщение не содержит Content-Type, этот поставщик добавляет указывающий "text/plain" и указанный набор символов.
matlab.net.http.io.StringProvider класс является handle класс.
provider = StringProvider создает StringProvider для отправки данных в Data кодируется значением, указанным в Charset собственность. Задайте эти свойства перед отправкой сообщения, содержащего этого поставщика.
provider = StringProvider( создает data,charset)StringProvider для отправки указанного data закодирован с указанным charset. Конструктор устанавливает значение Data к значению data и Charset к значению charset. charset необязательный аргумент.
Data - Данные для отправкиДанные для отправки, указанные как строковый или символьный вектор. Это значение Data, предоставленное конструктору. Это свойство также можно задать непосредственно, после вызова конструктора или в подклассе.
Авторы подкласса могут задать для этого свойства новые данные в любое время. Следующий вызов getData преобразует эти данные вплоть до значения getData
length аргумент.
GetAccess | public |
SetAccess | public |
Dependent | true |
Charset - Набор символов, используемый для кодирования'' (по умолчанию) | символьный векторНабор символов, используемый для кодирования, указывается как символьный вектор.
GetAccess | public |
SetAccess | public |
Dependent | true |
Header - поля заголовка сообщения или части;matlab.net.http.HeaderField.empty (по умолчанию) | matlab.net.http.HeaderFieldПоля заголовка сообщения или части, указанные как вектор одного или нескольких matlab.net.http.HeaderField объекты.
Это свойство используется только авторами подкласса. MATLAB устанавливает это свойство перед вызовом complete способ. Для непутевых сообщений MATLAB инициализирует это свойство для содержимого Request.Header, минус любой matlab.net.http.field.GenericFields или пустые поля. ContentProvider использует это свойство для добавления полей заголовка, описывающих отправляемые данные, или для добавления параметров в поля заголовка, уже содержащиеся в сообщении. В делегате для MultipartProvider, MATLAB инициализирует это свойство для полей заголовка, которые поставщик делегирования намерен вставить для детали. Делегаты могут изменять или изменять эти поля.
По возвращении от провайдера complete метод, если это не многопутевое сообщение, то MATLAB считывает это свойство и объединяет его содержимое в заголовок Request. Поля в этом Header с Names которые еще не появились в Request.Header добавляются в конец Request.Header. Если поле в этом поле Header имеет Name это то же самое, что и в Request.Header, и оба имеют непустые Values, то:
Если в Request.Header является GenericField, то игнорировать один в Header.
Если в Request.Header не является GenericField, затем замените его на Header.
Если один или оба из них имеют пустой Value, то поле удаляется из Request.Header и не добавляется как часть обычного завершения сообщения.
Если это делегат MultipartProvider, то все содержимое этого Header используется в качестве заголовка части. Многопартийные делегаты не должны предполагать, что Request.Header содержит любые поля, относящиеся к их собственным Header. Поставщик может определить, является ли он многосторонним делегатом, проверив, MyDelegator является MultipartProvider, хотя этот тест вряд ли понадобится.
MATLAB считывает это свойство только по возвращении из вызова поставщика complete способ. Изменения в этом массиве игнорируются при вызове MATLAB start.
Авторы классов должны знать, что их подклассы могли добавить поля к этому Header (в их complete метод) перед вызовом complete в их суперклассе. Лучше всего сохранять такие поля и не добавлять поля с одинаковыми именами. Однако добавление параметра в поле допустимо. Например, суперкласс может добавить параметр набора символов к существующему полю Content-Type, у которого его еще нет.
GetAccess | public |
SetAccess | public |
ForceChunked - Укажите, следует ли принудительно использовать кодирование передачи с порциямиfalse (по умолчанию) | trueУкажите, следует ли принудительно использовать кодирование передачи с порциями, указанное как логическое. Это свойство представляет интерес только для авторов подкласса и применимо только для поставщиков, не являющихся делегатами нескольких частей. Набор подклассов ForceChunked для управления тем, должно ли содержимое отправляться с использованием кодирования передачи с порциями. Если false (по умолчанию) MATLAB решает, следует ли отправлять порции содержимого, на основании того, знает ли он длину содержимого на момент готовности сообщения к отправке:
Если MATLAB знает длину содержимого (что имеет место, если сообщение содержит поле Content-Length или если этот поставщик expectedContentLength метод вернул число), затем MATLAB решает, отправлять ли его порциями или нет.
Если MATLAB не знает длину содержимого (нет поля Content-Length в заголовке и expectedContentLength возвращено пустым), то MATLAB всегда отправляет сообщение с порциями.
Если ForceChunked является trueзатем MATLAB посылает сообщение, порционированное независимо от того, знает ли оно длину содержимого, если известная длина не меньше размера блока. Если это свойство true, тогда сообщение не должно содержать поле Content-Length, так как HTTP не позволяет использовать поле Content-Length для секционированного сообщения. Однако можно вернуть ненулевое значение в expectedContentLength если вы хотите, чтобы MATLAB проверял, что вы возвращаете ожидаемую длину данных.
Когда MATLAB выбирает отправку порции сообщения, размер каждого порции равен длине данных, возвращаемых getData.
MATLAB считывает это значение после вызова complete метод, перед вызовом start. Это поле не устанавливается.
GetAccess | public |
SetAccess | public |
Request - Запрос на отправку сообщенияmatlab.net.http.RequestMessageЗапрос на отправку сообщения, указанного как matlab.net.http.RequestMessage объект.
Это свойство используется только авторами подкласса. RequestMessage.send и RequestMessage.complete методы устанавливают для этого свойства значение RequestMessage в чьем Body этот поставщик был размещен перед вызовом любых других методов в этом поставщике и перед добавлением дополнительных полей заголовка или проверкой сообщения. Поставщик может проверить это сообщение, чтобы узнать, что содержалось в исходном запросе.
Делегаты видят то же значение для этого свойства, что и делегатор. ContentProviders следует иметь в виду, что, если они являются делегатами, они не обязательно предоставляют весь текст сообщения запроса, поэтому они не должны предполагать, что поля заголовка в этом запросе имеют отношение к данным, которые они предоставляют. Обычно делегаты должны игнорировать поля заголовка в этом запросе, относящиеся к данным, например тип содержимого.
Если поставщик желает добавить какие-либо поля заголовка к этому сообщению или изменить существующие, он должен сделать это в своем complete путем добавления этих полей к Header собственность. Вызывающий абонент complete (RequestMessage или поставщик делегирования) определяет, что делать с этими полями. RequestMessage.send и RequestMessage.complete всегда копировать эти поля в Header из RequestMessage. Делегирующий поставщик может скопировать поля в свои собственные Header или вставить их в сообщение (как в случае MultipartProvider). Дополнительные сведения см. в разделе Свойство Header.
Это свойство доступно только для чтения.
Атрибуты:
GetAccess | public |
SetAccess | matlab.net.http.RequestMessage |
CurrentDelegate — ContentProvider которому этот поставщик делегируетmatlab.net.http.io.ContentProvider | пустоеContentProvider , которому этот поставщик делегирует, указанный как matlab.net.http.io.ContentProvider объект. Это свойство устанавливается в вызывающем поставщике (делегаторе) delegateTo для указания текущего делегированного поставщика. Если текущее делегирование отсутствует, значение будет пустым.
complete методы устанавливают это свойство пустым.
GetAccess | protected |
SetAccess | protected |
MyDelegator — ContentProvider делегированное этому поставщикуmatlab.net.http.io.ContentProvider.empty (по умолчанию) | matlab.net.http.io.ContentProviderContentProvider делегированный этому поставщику, указанный как matlab.net.http.io.ContentProvider объект.
Если ContentProvider делегирует ответственность за отправку всех или части данных сообщения другому поставщику, затем это свойство идентифицирует делегирующего поставщика делегату. Например, MultipartProvider делегирует части сообщения другим провайдерам, поэтому вставляет дескриптор в себя в каждом делегате. В противном случае MyDelegator пуст. delegateTo задает это свойство в делегате.
GetAccess | protected |
SetAccess | protected |
getData | Следующий буфер данных для отправки в сообщении запроса HTTP от StringProvider |
Эти методы специализируются на стандартных операторах и функциях MATLAB и наследуемых методах для объектов этого класса.
string | Сведения о поставщике в виде строки |
show | Отображение информации о поставщике |
complete | Полный заголовок HTTP для StringProvider |
preferredBufferSize | Предпочтительный размер буфера для ContentProvider |
expectedContentLength | Длина содержимого ContentProvider |
start | Запуск передачи данных из StringProvider |
restartable | Укажите, перезагружается ли ImageProvider |
reusable | Укажите, является ли ImageProvider повторно используемым |
delegateTo | Делегировать другому поставщику |
StringProviderСледующий код подготавливает сообщение, которое отправляет строку "myText" использование типа содержимого "text/plain" на сервер, использующий кодировку Shift_JIS:
ctf = ContentTypeField(MediaType('text/plain','charset','Shift_JIS'); r = RequestMessage('put',ctf,StringProvider('myText'));
В этом примере заголовок не имеет поля Content-Type, поэтому StringProvider вставляет один на основе аргументов конструктора.
r = RequestMessage('put',[],StringProvider('myText','Shift_JIS')); show(r.complete('www.someurl.com'))
PUT / HTTP/1.1
Host: www.someurl.com
Content-Type: text/plain; charset=Shift_JIS
User-Agent: MATLAB/9.2.0.512567 (R2017b)
Connection: close
Date: Fri, 20 Jun 2017 14:26:42 GMTВ этом примере набор символов, указанный для StringProvider конструктор, используемый для преобразования данных, отличается от набора символов в поле Content-Type. StringProvider не изменяет существующее поле Content-Type, которое уже указывает набор символов, поэтому сервер предполагает, что данные являются US-ASCII, а не Shift-JIS.
ctf = ContentTypeField(MediaType('text/plain','charset','US-ASCII')); r = RequestMessage('put',ctf,StringProvider('myText','Shift_JIS'));
В этом примере MATLAB добавляет параметр набора символов в поле Content-Type, в котором не указан набор символов, поскольку по умолчанию для "application/json" является UTF-8, что отличается от Shift_JIS.
ctf = ContentTypeField(MediaType('application/json')); r = RequestMessage('put',ctf,StringProvider('myText','Shift_JIS')); show(r.complete('www.someurl.com'))
PUT / HTTP/1.1
Host: www.someurl.com
Content-Type: application/json; charset=Shift_JIS
User-Agent: MATLAB/9.2.0.512567 (R2017b)
Connection: close
Date: Fri, 20 Jun 2017 14:26:42 GMTПри отсутствии поля заголовка Content-Type и отсутствии набора символов для StringProviderMATLAB использует эвристику для поиска «минимальной» кодировки, которая может представлять данные, одна из которых включает кодировку по умолчанию для платформы. В этом примере при запуске в Windows символы Юникода ® в строке находятся в пределах диапазона Windows-1252, но за пределами диапазона US-ASCII, поэтому используется Windows-1252:
r = RequestMessage('put',[],StringProvider('€abc')); show(r.complete('www.someurl.com'))
PUT / HTTP/1.1
Host: www.someurl.com
Content-Type: text/plain; charset=windows-1252
User-Agent: MATLAB/9.2.0.512567 (R2017b)
Connection: close
Date: Fri, 20 Jun 2017 14:26:42 GMTВ этом случае в поле Content-Type указывается "application/json" без набора символов, и ни один не указан для StringProvider. Поскольку набор символов по умолчанию для "application/json" является UTF-8, StringProvider используется для преобразования и не указывает набор символов явно в поле Тип содержимого.
ctf = ContentTypeField(MediaType('application/json')); r = RequestMessage('put',ctf,StringProvider('myText')); % uses UTF-8

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.