主要内容

httpメッセージの进行状况モニターの表示

この例では,网页サイトとの间でで信されるデータのの进バー表示する进进するする进するする,进状况するMyProgressMonitor.の包装方法をを明します。このこのモニターで,matlab®关节有关部侍霸このモニターはset.direction.メソッドおよび设定值メソッドメソッド使使て,方向プロパティと价值プロパティの変更を监视します。

matlabにより方向プロパティプロパティが设定さされるたびに,MyProgressMonitor.により進行状況バー ウィンドウが作成され、送信メッセージまたは受信メッセージが表示されます。

次のMyProgressMonitor.クラスクラスを作物成し。

この例で送信さデータは1 mbしかないため,クラスクラスは间隔プロパティが.001短い间隔ますれ。

Classdef.myprogress monitor 特性ProgHandle方向matlab.net.http.messageType.价值UINT64纽迪尔matlab.net.http.messageType.= matlab.net.http.messageType.request.结尾方法功能obj = myprogress monitor obj.interval = .001;结尾功能完成(obj)obj.closeit();结尾功能删除(obj)obj.closeit();结尾功能set.direction(obj,dir)obj.direction = dir;obj.changedir();结尾功能set.value(obj,值)obj.value =值;obj.update();结尾结尾方法(访问=私人)功能更新(OBJ,〜)设置值时调用%进口matlab.net.http。*如果〜isempty(obj.value)如果isempty(obj.max)%没有最大意味着我们不知道长度,所以消息每个电话的百分比变化值= 0;如果obj.direction == messageType.request msg = sprintf('发送%d bytes ...',obj.value);别的msg = sprintf('收到%d bytes ...',obj.value);结尾别的%最多已知,更新比例值value = double(obj.value)/ double(obj.max);如果obj.newdir == messageType.Request.%消息仅在方向的变化时更改如果obj.direction == messageType.request msg ='发送......';别的msg =.'接收...';结尾结尾结尾如果isempty(obj.proghandle)%如果我们没有进度条,首次显示它obj.proghandle =......waitbar(值,msg,'createcanceLbtn'......@(〜,〜)癌症关闭(obj));obj.newdir = messageType.Response;elsef.obj.newdir == messageType.request ||isempty(obj.max)改变方向或如果没有最大已知,更改消息waitbar(value,obj.proghandle,msg);obj.newdir = messageType.Response;别的%没有方向改变别的只是更新比例值waitbar(值,obj.proghandle);结尾结尾功能cancelandclose(obj)%致电所需的cancelfcn,然后关闭我们的进度条。当用户单击“取消”或“关闭”窗口时,将其调用%。obj.cancelfcn();obj.closeit();结尾结尾功能换土(obj,〜)设置或更改方向时的%调用。留下进步%bar显示。obj.newdir = matlab.net.http.messageType.request;结尾结尾方法(访问=私人)功能特写(obj)%通过删除手柄来关闭进度条%cellerequestfcn未调用,因为备用栏呼叫%癌症(),会导致递归。如果〜isempty(obj.proghandle)删除(obj.proghandle);obj.proghandle = [];结尾结尾结尾结尾

操作を開始するには、進行状況モニターを指定します。

opt = matlab.net.http.httpoptions(......'progressonitorfcn',@ myprogress monitor,......'useprogressmonitor',真的);

データを作用成し。

x = x(1000000,1,'uint8');body = matlab.net.http.messagebody(x);

メッセージを作用成し。httpbin.org/put.サービスは,メッセージで受信したデータを返します。

url = matlab.net.uri('http://httpbin.org/put');方法= matlab.net.http.requestmethod.put;req = matlab.net.http.requestmessage(方法,[],body);

メッセージを送信します。

[resp,〜,hist] = req.send(URL,OPT);

参考

|