主要内容

发送

类:matlab.net.http.RequestMessage
包:matlab.net.http

发送HTTP请求消息和接收响应

描述

例子

(响应,completedrequest,历史]=发送(请求,uri)发送请求指定的web服务消息uri并返回响应,如果任何。如果没有request.Method属性指定,那么发送方法设置属性“得到”

默认情况下,发送的语义正确性验证消息的标题和其他部分就完成了uri。该方法还填写所需的正确形成请求头字段。如果request.Body是一个MessageBody谁的有效载荷属性没有设置发送调用转换任何适当的转换函数request.Body.Data一个向量的字节代表发送一个HTTP负载,所述MessageBody.Data。通常,“得到”请求不包含数据,但是发送的方法身体不管RequestMethod。如果服务器返回数据的响应,也没有消费者是指定的,那么发送将数据转换为MATLAB®并将它保存在数据response.Body.Data。看到MessageBody.Data有关数据转换的更多信息。

如果request.Body是一个内容提供者,然后用MATLAB调用提供者获取要发送的数据。

如果头已经包含一个字段的方法通常补充说,发送验证领域的期望值。您可以覆盖默认行为如下。

  • 发送消息是没有任何检查或修改标题,设置request.Completed财产真正的在发送之前。如果你使用了完整的方法来完成请求,然后你应该指定相同的值uri选项你提供给完整的,或者可能会有不可预知的结果。即使完成设置,未指定的字段RequestLine将使用默认值。

  • 允许发送方法检查和修改标题,但抑制添加特定的头字段发送或者一个内容提供者可能会添加,添加该字段request.Header空值([])。例如,发送自动添加一个用户代理头字段。如果你不想要这种行为,然后添加HeaderField(“用户代理”)头。头字段空值并不包含在消息。主机和连接字段不能被抑制。

  • 覆盖的值发送方法增加了对于给定的头字段,添加自己的实例字段在发送之前或完成的消息。然而,这不会覆盖一个头字段内容提供者可能增加。然而,对于一些头字段类型,发送可能仍然拒绝消息如果值是无效的。以防止任何一个给定的字段的值的检查,或覆盖一个字段内容提供者补充说,添加一个字段的类型matlab.http.field.GenericField头与所需的名称和值。既不发送也不是一个内容提供者将添加任何头字段名称等于什么GenericField头也不会检查其正确性。

  • 发送原始二进制数据转换,你可以插入uint8向量分为Body.DataBody.Payload。唯一的区别是这些数据Body.Data受到转换基于消息中的内容类型字段,而Body.Payload不是。发送总是试图将非空的Body.Data如果Body.Payload是空的,即使完成已经设置。看到了吗MessageBody.Data转换规则。

例子

(响应,completedrequest,历史]=发送(请求,uri,选项,消费者)提供额外的选项来处理请求响应消息。

输入参数

全部展开

请求消息,指定为一个matlab.net.http.RequestMessage对象。

消息目的地,指定为一个matlab.net.URI对象或向量构造函数接受一个字符串或字符。如果该值是一个URI对象,那么它必须说出一个主机。如果它是一个字符串,它不包括一个计划,然后“http”假定。例如,“www.somewebsite.com”/ / www.somewebsite.com的都视为“http://www.somewebsite.com”

附加选项,指定为一个matlab.net.http.HTTPOptions对象,处理请求和响应消息。如果没有指定,或者如果该值是空的,然后发送使用默认选项。

内容消费过程返回的有效载荷,指定为一个matlab.net.http.io.ContentConsumer对象或函数,它返回一个句柄ContentConsumer

发送方法调用的ContentConsumer实时处理或存储缓冲区的数据作为数据被接收。的消费者可以将数据存储在吗response.Body.Data或以其它方式处理它。例如,一个消费者可以显示数据图窗口或将其保存在一个文件中。指定当消费者,MATLAB不会自动设置MessageBody.Data,但它将MessageBody.Payload在不改变的有效载荷options.SavePayload是真的。例如,一个FileConsumer保存数据到一个文件,而不是MessageBody.Data

使用一个ContentConsumer提供更大的灵活性在转换或存储的响应数据比默认MATLAB响应数据转换。对接收的数据的默认转换的描述,看看MessageBody.Data。的列表ContentConsumerMATLAB提供的类型,类型:

议员= ? matlab.net.http.io.ContentConsumer;{mp.ContainingPackage.ClassList.Name}’

此外,软件开发人员可以创建他们自己的ContentConsumer子类来处理数据,它被收到。

消费者只有接受信息,使用基于各种因素如content - type头的吗响应以及是否response.StatusCode好吧。每一个消费者有自己的标准,接受消息。

如果负载压缩与编码支持,和万博1manbetx选项未指明的或options.DecodePayload是正确的,那么消费者会解压缩数据。是否压缩和有效载荷options.DecodePayload是假的,或者是有效载荷与一个不受支持的编码压缩,然后消费者不习惯,没有数据的默认处理。万博1manbetx

在所有情况下,消费者不使用负载处理和转换,如果没有消费者是指定的。

如果消费者处理函数,函数被调用实例化一个消费者只有在MATLAB确定反应有效载荷。

当指定消费者但是没有选项,添加一个占位符[]理由选项使用默认选项。

输出参数

全部展开

从服务器接收到的消息,作为一个返回matlab.net.http.ResponseMessage对象。可能有中间请求和响应MATLAB和代理之间交换或服务器如果重定向和/或认证。

发送之前收到的请求响应参数,作为一个返回matlab.net.http.RequestMessage对象。的发送方法增加completedrequest论点与身份验证或重定向信息。

如果request.Body是一个内容提供者,然后completedrequest.Body通常是空的,因为内容提供者有效载荷还未得救。然而,如果options.SavePayload是真的,那么completedrequest.Body是一个MessageBody谁的有效载荷从提供者发送的数据吗uint8向量。在某些情况下,当请求的内容类型表明它是基于字符的,MessageBody.Data属性包含负载表示为一个字符串。

发送一个HTTP请求后,检查completedrequest争论什么。服务器会发送多条消息,例如,如果有重定向或身份验证交换发生。如果有多个消息,然后completedrequest包含了最后的请求。第一,或中间消息,看看历史论点。

多次发送相同的请求,调用RequestMessage.complete方法:

[completedrequest,目标]=完成(请求uri)

然后,调用发送方法用这些输出参数:

resp =发送(completedrequest、目标)

返回的消息,日志作为一个向量的matlab.net.http.LogRecord对象交换来满足发送请求。如果你有一个请求和响应,那么历史参数包含一个记录。对于包含多个消息身份验证,可以包含多个历史日志记录为每一个重定向。

用历史来获得所有set - cookie从响应消息头。你可以把这些在后续请求头回服务器。

历史上最后一个记录包含相同的属性completedrequest响应参数,除了身体财产。指定日志消息的身体SavePayload财产的选项论点。

历史还可以用于调试。

例子

全部展开

发送一个HTTP消息阅读MathWorks联络支持web页面并显示消息状态代码。万博1manbetx

进口matlab.net。*进口matlab.net.http。*r = RequestMessage;uri = uri (“//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us”);resp =发送(r, uri);状态= resp.StatusCode
状态=好

防止消息重定向mathworks.com网站通过设置HTTP选项MaxRedirects为零。然后显示状态码信息。

进口matlab.net。*进口matlab.net.http。*r = RequestMessage;uri = uri (“//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us”);选择= HTTPOptions (“MaxRedirects”,0);[职责,~,嘘]=发送(r, uri,选项);状态= getReasonPhrase (resp.StatusCode)
状态= '感动永久'

错误处理

总是检查响应状态属性来决定是否请求被接受。错误条件是:

  • MException——信息是不完整的,不能完成。

  • textbox——完成消息,但web服务不可用或不响应超时期限内指定选项

  • 状态的属性响应——Web服务响应并返回一个HTTP错误状态。发送返回正常,设置状态财产从服务器返回的错误。

介绍了R2016b