Main Content

websave

RESTful 웹 서비스의 콘텐츠를 파일로 저장

설명

예제

outfilename = websave(filename,url)url에서 지정한 웹 서비스에서 제공하는 콘텐츠를 저장하고 이를 filename에 씁니다. websave 함수는 filename의 전체 경로를 outfilename으로 반환합니다.

웹 서비스는 JSON, XML, 이미지 또는 텍스트와 같은 인터넷 미디어 유형으로 형식이 지정된 데이터를 반환하는 RESTful 항목을 제공합니다.

outfilename = websave(filename,url,QueryName1,QueryValue1,...,QueryNameN,QueryValueN)은 쿼리 파라미터를 하나 이상의 이름-값 인수로 지정하여 url에 추가합니다. 웹 서비스는 쿼리 파라미터를 정의합니다.

예제

outfilename = websave(___,options)weboptions 객체 options에서 지정한 다른 HTTP 요청 옵션을 추가합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

websave는 HTTP GET 메서드와 POST 메서드를 지원합니다. HTTP POST 요청을 보내려면 optionsRequestMethod 속성을 'post'로 지정하십시오. 많은 웹 서비스는 GET 메서드와 POST 메서드를 모두 제공하여 데이터를 요청합니다.

예제

모두 축소

이 예제에서는 웹 서버의 이미지를 파일로 저장하는 방법을 보여줍니다.

이미지 찾기

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

이미지를 파일에 저장하기

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

이 예제에서는 웹 서버 파일에서 데이터를 저장하는 방법을 보여줍니다.

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 데이터를 읽어와 파일 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는 콘텐츠를 있는 그대로 저장합니다. websaveoptions.ContentType 속성과 options.ContentReader 속성이 설정되어 있더라도, 이들 속성을 무시합니다.

예: websave('matlabcentral.html','https://www.mathworks.com/matlabcentral')은 해당 웹 페이지를 읽고 그 페이지의 HTML을 matlabcentral.html 파일에 저장합니다.

웹 서비스에 대한 URL로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 전송 프로토콜을 포함합니다. httphttps만 지원됩니다. 웹 서비스는 RESTful 인터페이스를 구현합니다. 자세한 내용은 RESTful 항목을 참조하십시오.

웹 서비스 쿼리 파라미터로, 하나 이상의 이름-값 쌍 인수로 지정됩니다. QueryName 인수는 쿼리 파라미터의 이름을 지정해야 합니다. QueryValue 인수는 쿼리 파라미터의 값을 지정하는 문자형 벡터 또는 string형 스칼라이거나 숫자형, 논리형 또는 datetime형 값이어야 합니다. 숫자형, 논리형, datetime형 값이 배열에 들어 있을 수 있습니다. 웹 서비스는 요청의 일부로 받는 이름-값 쌍을 정의합니다.

QueryValuedatetime 객체로 지정하면 이 객체의 Format 속성을 웹 서비스에 필요한 형식과 일치하도록 지정해야 합니다. Format 속성이 표준 시간대나 오프셋을 포함하고, datetime 객체의 시간대가 지정되지 않은 경우, websave'Local'을 표준 시간대로 지정합니다.

QueryValue가 배열에 여러 개의 값을 포함할 경우, weboptions 객체의 ArrayFormat 속성을 지정하여 웹 서비스에서 지정한 대로 배열을 form-encode해야 할 수 있습니다.

예: websave('webread_search.html','https://www.mathworks.com/matlabcentral/fileexchange/','term','simulink')는 File Exchange에 업로드된 파일 중 simulink라는 단어를 포함하는 파일의 목록을 검색하고, 검색 결과를 HTML 파일에 저장합니다.

추가 HTTP 요청 옵션으로, weboptions 객체로 지정됩니다. weboptions 속성에 해당하는 모든 요청 옵션에 대해서는 weboptions를 참조하십시오.

세부 정보

모두 축소

RESTful

RESTREpresentational State Transfer 즉, 웹 서비스에 대한 공통된 구조적 스타일을 의미합니다. RESTful 인터페이스는 GET, PUT, POST 또는 DELETE와 같은 표준 HTTP 메서드를 제공합니다.

  • RESTful 웹 서비스 기능에서 지원하지 않는 기능에 대해서는 MATLAB에서 HTTP 사용하기 항목을 참조하십시오.

  • HTTP POST 요청의 경우, websave 함수는 application/x-www-form-urlencoded 미디어 유형만 지원합니다. 다른 인터넷 미디어 유형의 콘텐츠와 함께 POST 요청을 보내려면 webwrite를 사용하십시오.

  • 프록시 서버 설정을 지정하려면 Proxy Server Authentication 항목을 참조하십시오.

버전 내역

R2014b에 개발됨