Main Content

webread

RESTful Web サービスからのコンテンツの読み取り

説明

data = webread(url)url によって指定された Web サービスからコンテンツを読み取り、data にコンテンツを返します。

Web サービスは、JSON、XML、イメージ、テキストなどのインターネット メディア タイプ形式でデータを返すRESTfulを提供します。

data = webread(url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN) は、1 つ以上の名前と値のペアの引数で指定されるクエリ パラメーターを url に追加します。クエリをメッセージ本文に挿入するには、webwrite を使用します。クエリ パラメーターは Web サービスによって定義されます。

data = webread(___,options)weboptions オブジェクト options で指定されたその他の HTTP 要求オプションを追加します。この構文では、前述の構文の入力引数のいずれかを使用できます。

データを特定の出力タイプとして返すには、optionsContentType プロパティを指定します。

関数を使用してコンテンツを読み取るには、optionsContentReader プロパティを関数のハンドルとして指定します。webread は Web サービスからデータをダウンロードし、指定された関数でデータを読み取ります。

  • 複数の出力引数を返す関数のハンドルを指定した場合、webread はすべての出力引数を返します。

  • 出力引数を 1 つも返さない関数のハンドル (Image Processing Toolbox™ のビデオ ファイル用の関数 @implay など) を指定した場合、webread は出力引数を返しません。

[data,colormap,alpha] = webread(___)url で指定された Web サービスからイメージを読み取り、data にイメージを返します。イメージのみを返すには前述の構文を使用します。イメージに関連付けられたカラーマップとアルファ チャネルを返すには、この構文を使用してください。

webread は、HTTP 応答にイメージ メディア タイプを指定する Content-Type ヘッダー フィールドが含まれていて、imread でそのイメージ形式がサポートされている場合にイメージを返します。サポートされるイメージ形式については、インポートとエクスポートでサポートされるファイル形式を参照してください。

[data,Fs] = webread(___)url で指定された Web サービスからオーディオ データを読み取り、data にオーディオ データを返します。オーディオ データのみを返すには前述の構文を使用します。オーディオ データのサンプル レートを Hz 単位で返すには、この構文を使用してください。

webread は、HTTP 応答にオーディオ メディア タイプを指定する Content-Type ヘッダー フィールドが含まれていて、audioread でそのオーディオ形式がサポートされている場合にオーディオ データを返します。サポートされるオーディオ形式については、インポートとエクスポートでサポートされるファイル形式を参照してください。

すべて折りたたむ

この例では、Web サイトからイメージを読み取って表示する方法を示します。

イメージ データの読み取り

httpsUrl = 'https://requestserver.mathworks.com';
imageUrl = strcat(httpsUrl, '/assets/computerVision.jpg');
rgb = webread(imageUrl);
whos rgb
  Name        Size                Bytes  Class    Attributes

  rgb       360x640x3            691200  uint8              

イメージのサイズ変更と表示

rgb = imresize(rgb, 0.6);
imshow(rgb)

この例では、csv データ ファイルから温度を読み取る方法を示します。

CSV ファイルからのデータの読み取り

httpsUrl = "https://requestserver.mathworks.com";
dataUrl = strcat(httpsUrl, "/assets/weatherStation.csv");
data = webread(dataUrl);
time = [data.Time];
temp = [data.TempF];

温度のプロットの表示

plot(time, temp)
xlabel("Time")
ylabel("Temperature (Farenheit)")
title("Temperature Over Time");
axis padded

この例では、クエリ パラメーターを使用してレコードを選択する方法を示します。

従業員データベースの構造の表示

データベース employee のフィールドを表示します。

httpsUrl = "https://requestserver.mathworks.com";
employeeUrl = strcat(httpsUrl, "/employee");
fieldnames(webread(employeeUrl))
ans = 6×1 cell
    {'id'        }
    {'firstName' }
    {'lastName'  }
    {'occupation'}
    {'age'       }
    {'city'      }

firstNamelastName による従業員の選択

jSmith = webread(employeeUrl, "firstName", "John", "lastName", "Smith");
disp(jSmith);
            id: 1
     firstName: 'John'
      lastName: 'Smith'
    occupation: 'Software Engineer'
           age: '32'
          city: 'Boston'

この例では、データを特定のタイプとして返す方法を示します。

データの読み取り

httpUrl  = "http://requestserver.mathworks.com";
employeeUrl = strcat(httpUrl, "/employee");

レコードを文字配列として返す

weboptions オブジェクトを作成し、その ContentType'text' に設定します。関数 webread は JSON オブジェクトを文字配列に変換します。

options = weboptions("ContentType", "text");
sBrown = webread(employeeUrl, "firstName", "Sarah", options);
disp(sBrown)
[{"id":2,"firstName":"Sarah","lastName":"Brown","occupation":"Software Engineer","age":"28","city":"New York"}]

入力引数

すべて折りたたむ

Web サービスへの URL。文字ベクトルまたは string スカラーとして指定します。転送プロトコルを含めます。httphttps のみがサポートされます。Web サービスは RESTful インターフェイスを実装します。詳細については、RESTfulを参照してください。

例: webread('https://www.mathworks.com/matlabcentral') は Web ページを読み取り、その HTML を文字配列として返します。

Web サービスのクエリ パラメーター。1 つ以上の名前と値のペアの引数として指定します。QueryName 引数はクエリ パラメーターの名前を、文字ベクトルまたは string スカラーとして指定しなければなりません。QueryValue 引数は、クエリ パラメーターの値を指定する文字ベクトル、string スカラー、数値、logical 値、または datetime 値でなければなりません。数値、論理値および datetime 値は配列内に含めることもできます。要求の一部として受け入れられる名前と値のペアは、Web サービスによって定義されます。

QueryValuedatetime オブジェクトとして指定した場合、その Format プロパティには Web サービスに必要な形式と一貫した値を指定しなければなりません。Format プロパティにタイム ゾーンまたはオフセットが含まれていて、datetime オブジェクトにゾーンが指定されていない場合、webread はタイム ゾーンに 'Local' を指定します。

QueryValue に配列を使用して複数の値が含まれている場合は、Web サービスによる指定どおりに配列をフォーム エンコードできるように weboptions オブジェクトの ArrayFormat プロパティを指定しなければならないことがあります。

例: webread('https://www.mathworks.com/matlabcentral/fileexchange/','term','webread') は、File Exchange にアップロードされた webread という語を含むファイルのリストを取得します。

追加の HTTP 要求オプション。weboptions オブジェクトとして指定します。

weboptions オブジェクトの ContentType プロパティを指定し、そのオブジェクトを入力引数として webread に渡すことができます。webread は、data をそのタイプの出力として返します。次の表に weboptions オブジェクトに指定できる有効なコンテンツ タイプを示します。

ContentType 指定子

出力タイプ

'auto' (既定)

サーバーで指定されたコンテンツ タイプに応じて自動的に決定される出力タイプ。

'text'

コンテンツ タイプを表す文字ベクトル:

text/plain
text/html
text/xml
application/xml
application/javascript
application/x-javascript
application/x-www-form-urlencoded

Web サービスから拡張子 .m をもつ MATLAB® ファイルが返される場合、この関数はそのコンテンツを文字ベクトルとして返します。

'image'

image/format コンテンツの数値または論理行列。最初の出力引数がインデックス付きイメージの場合、2 番目の出力引数はカラーマップ、 3 番目の出力引数はアルファ チャネルです。

サポートされるイメージ形式については、インポートとエクスポートでサポートされるファイル形式を参照してください。

'audio'

audio/format コンテンツの数値行列。2 番目の出力引数にサンプリング レートを数値スカラーとして含みます。

サポートされるオーディオ形式については、インポートとエクスポートでサポートされるファイル形式を参照してください。

'binary'

バイナリ コンテンツ (つまり char 型として処理されないコンテンツ) の uint8 の列ベクトル。

'table'

スプレッドシートおよび CSV (text/csv) コンテンツのスカラー テーブル オブジェクト。

'json'

application/json コンテンツの char、数値、論理値、構造体または cell 配列。

'xmldom'

text/xml または application/xml コンテンツの Java® ドキュメント オブジェクト モデル (DOM) ノード。指定しない場合、関数は XML コンテンツを文字ベクトルとして返します。

'raw'

'text''xmldom' および 'json' コンテンツの char の列ベクトル。関数はその他のすべてのコンテンツ タイプを uint8 の列ベクトルとして返します。

weboptions のプロパティであるすべての要求オプションについては、weboptions を参照してください。

出力引数

すべて折りたたむ

Web サービスから読み取ったコンテンツ。スカラー、配列、構造体またはテーブルとして返されます。

インデックス付きイメージに関連付けられたカラーマップ。数値配列として返されます。

インデックス付きイメージに関連付けられたアルファ チャネル。数値配列として返されます。

オーディオ データの Hz 単位のサンプル レート。正の数値スカラーとして返されます。

詳細

すべて折りたたむ

RESTful

REST は Web サービスの一般的なアーキテクチャ スタイルである Representational State Transfer を意味します。RESTful インターフェイスは、GET、PUT、POST、DELETE などの標準の HTTP メソッドを提供します。

ヒント

  • RESTful Web サービス機能によってサポートされていない機能については、HTTP インターフェイスを参照してください。

  • webread は HTTP GET メソッドと HTTP POST メソッドをサポートします。多くの Web サービスではデータの要求メソッドとして GET と POST の両方が提供されます。HTTP POST 要求を送るには、optionsRequestMethod プロパティを 'post' に指定します。ただし、webread はクエリ オプションを要求メッセージの本文ではなく url に挿入します。クエリを本文に挿入するには、webwrite を使用します。

  • HTTP POST 要求の場合、関数 webreadapplication/x-www-form-urlencoded メディア タイプのみをサポートします。その他のインターネット メディア タイプのコンテンツの POST 要求を送信するには、webwrite を使用してください。

  • この関数はドキュメントの内容を調べずに処理方法を決定します。たとえば、HTML ドキュメントや XML ドキュメントには、多くの場合、ドキュメントの文字エンコードを指定する <meta> タグが含まれています。エンコードが webread の既定のエンコードと異なる場合は、weboptions で正しい CharacterEncoding オプションを指定します。

  • プロキシ サーバーの設定を指定するには、プロキシ サーバー認証を参照してください。

バージョン履歴

R2014b で導入