メインコンテンツ

websave

R2026b

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 要求を送るには、options の RequestMethod プロパティを "post" に指定します。多くの Web サービスではデータの要求メソッドとして GET と POST の両方が提供されます。

例

例

すべて折りたたむ

Web サーバー上のイメージを現在のフォルダー内のファイルに保存します。

httpsUrl = "https://example.org";
imageUrl = strcat(httpsUrl,"exampleimage.jpg");
imageFile = "exampleimage.jpg";
imageFileFullPath = websave(imageFile,imageUrl);

Web サーバー ファイルのデータを現在のフォルダー内の CSV ファイルに保存します。

httpsUrl = "https://example.org";
dataUrl = strcat(httpsUrl,"exampledata.csv");
weatherFile = "exampledata.csv";
weatherFileFullPath = websave(weatherFile,dataUrl);

データベースの従業員データを現在のフォルダー内のテキスト ファイルに保存します。fileread および jsondecode を使用して、JSON 形式の従業員データをテキスト ファイルから抽出します。

httpUrl = "https://example.org";
employeeUrl = strcat(httpUrl,"/employeedata");
employeeFile = "employeedata.txt";
employeeFileFullPath = websave(employeeFile,employeeUrl,"occupation","Software Engineer");
employeeData = jsondecode(fileread(employeeFileFullPath));

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 スカラーとして指定します。転送プロトコルを含めます。http と https のみがサポートされます。Web サービスは RESTful インターフェイスを実装します。詳細については、RESTfulを参照してください。

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

QueryValue を datetime 値として指定する場合、その 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 を参照してください。

詳細

すべて折りたたむ

ヒント

  • RESTful Web サービス機能によってサポートされていない機能については、HTTP を使用した MATLAB からの Web サービスの呼び出しを参照してください。

  • Web サービス API は HTTP 1.1 のみをサポートしています。

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

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

拡張機能

すべて展開する

バージョン履歴

R2014b で導入

すべて展開する