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 サーバー ファイルの気象データを現在のフォルダー内の CSV ファイルに保存します。

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

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

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 引数は、クエリ パラメーターの名前を指定する文字ベクトルまたは string スカラーでなければなりません。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 を参照してください。

詳細

すべて折りたたむ

RESTful

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

ヒント

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

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

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

拡張機能

バージョン履歴

R2014b で導入

すべて展開する