Main Content

websave

RESTful Web サービスからコンテンツをファイルに保存

説明

outfilename = websave(filename,url) は、url で指定された Web サービスからのコンテンツを保存して、filename に書き込みます。関数 websave は、filename の絶対パスを outfilename として返します。

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

outfilename = websave(filename,url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN) は、1 つ以上の名前と値のペアの引数で指定されるクエリ パラメーターを url に追加します。クエリ パラメーターは Web サービスによって定義されます。

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

websave は HTTP GET メソッドと HTTP POST メソッドをサポートします。HTTP POST 要求を送るには、optionsRequestMethod プロパティを 'post' に指定します。多くの Web サービスではデータの要求メソッドとして GET と POST の両方が提供されます。

すべて折りたたむ

この例では、Web サーバー上のイメージをファイルに保存する方法を示します。

イメージの特定

httpsUrl = "https://requestserver.mathworks.com";
imageUrl = strcat(httpsUrl, "/assets/computerVision.jpg");

ファイルへのイメージの保存

imageFile = "computerVision.jpg";
imageFileFullPath = websave(imageFile, imageUrl);

この例では、Web サーバー ファイルのデータを保存する方法を示します。

httpsUrl = "https://requestserver.mathworks.com";
dataUrl = strcat(httpsUrl, "/assets/weatherStation.csv");
weatherFile = "weatherData.csv";
weatherFileFullPath = websave(weatherFile, dataUrl);

この例では、データをテキスト ファイルに保存する方法を示します。

httpUrl  = 'http://requestserver.mathworks.com';
employeeUrl = strcat(httpUrl, '/employee');
employeeFile = 'employeeData.txt';
employeeFileFullPath = websave(employeeFile, employeeUrl, 'occupation', 'Software Engineer');
employeeData = jsondecode(fileread(employeeFileFullPath))
employeeData=2×1 struct array with fields:
    id
    firstName
    lastName
    occupation
    age
    city

JSON データを Web サイトから読み取り、ファイル test.txt に保存します。

uri = matlab.net.URI('http://httpbin.org/get');
websave('test.txt',uri,weboptions('ContentType','json'));

ファイルから JSON データの構造体へとテキストを読み取ります。

js = jsondecode(fileread('test.txt'))
js = 

  struct with fields:

       args: [1×1 struct]
    headers: [1×1 struct]
     origin: '144.444.4.4'
        url: 'http://httpbin.org/get'

入力引数

すべて折りたたむ

コンテンツの保存先のファイル名。文字ベクトルまたは string スカラーとして指定します。websave はコンテンツをそのまま保存します。websave は、options.ContentType および options.ContentReader のプロパティが設定されていても無視します。

例: websave('matlabcentral.html','https://www.mathworks.com/matlabcentral') は Web ページを読み取り、その HTML をファイル matlabcentral.html に保存します。

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

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

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

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

例: websave('webread_search.html','https://www.mathworks.com/matlabcentral/fileexchange/','term','simulink') は、File Exchange にアップロードされた simulink という単語を含むファイルのリストを取得して、その検索結果を HTML ファイルに保存します。

追加の HTTP 要求オプション。weboptions オブジェクトとして指定します。weboptions のプロパティであるすべての要求オプションについては、weboptions を参照してください。

詳細

すべて折りたたむ

RESTful

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

ヒント

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

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

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

バージョン履歴

R2014b で導入