Main Content

matlab.net.http.HTTPException 类

命名空间: matlab.net.http
超类: MException

HTTP 服务引发的异常

描述

HTTPException 类包含有关错误的信息。

RequestMessage.send 方法如果在尝试发送消息之后发生错误,将会引发 HTTP 异常。例如,在下列情况下,此方法将引发异常:

  • 传输过程中出现故障,服务器未收到消息。失败的可能原因包括网络问题、超时或 URI 不正确。

  • 服务器收到消息,但在发送响应时出现故障。

  • 服务器收到消息并且发送了响应,但无法根据响应的 Content-Type 进行转换。例如,收到错误的 JSON 字符串。

如果 RequestMessage.send 方法在尝试发送消息之前出现错误,则会引发标准 MException

HTTPException 说明 MException.cause 属性中存在的错误,并返回事务处理的历史记录。History 属性中包含已发送的消息和已收到的消息(如果有)。

属性

全部展开

已完成的请求消息,指定为 matlab.net.http.RequestMessage 对象。Request 中包含已发送或本应发送的最后一条消息。如果此消息的标头已成功发送,则它与 History.Request 属性中的最后一个条目相同。否则,History 属性中的最后一个条目将不包含您尝试发送的消息。

属性:

GetAccess
public
SetAccess
private

已发送或本应发送的最后一条消息的 URI,指定为 matlab.net.URI 对象。

属性:

GetAccess
public
SetAccess
private

事务处理历史记录,指定为 matlab.net.http.LogRecord 对象的向量。History 只包含已成功发送或收到标头的消息。如果在发送或接收某个消息的标头时出现异常,History 中将不包含该消息。如果在发送或接收有效负载时或者在将数据与有效负载进行相互转换的过程中出现错误,可能不会设置 MessageBody Payload 属性和/或 Data 属性。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

url 变量中的网站发送一条消息。此目标返回一条消息,其 Payload 属性中包含的 JPEG 图像对 Content-Type image/jpeg 无效。

try
    resp = RequestMessage().send(url);
catch e
    if isa(e,'matlab.net.http.HTTPException')
        response = e.History(end).Response;      
        if ~isempty(response)
            data = response.Body.Data;
            payload = response.Body.Payload
        end
    end
end

payload 变量包含作为 uint8 向量而接收到的字节。由于 Content-Type 不基于字符,所以 data 变量为空。

版本历史记录

在 R2016b 中推出