コード例 #1
0
ファイル: HttpServiceClient.cs プロジェクト: daszat/zetbox
 public byte[] SetObjects(Guid version, byte[] msg, ObjectNotificationRequest[] notificationRequests)
 {
     return MakeRequest(SetObjectsUri,
         reqStream =>
         {
             reqStream.Write(version);
             reqStream.Write(msg);
             reqStream.Write(notificationRequests);
         });
 }
コード例 #2
0
ファイル: HttpServiceClient.cs プロジェクト: daszat/zetbox
        public byte[] InvokeServerMethod(out byte[] retChangedObjects, Guid version, SerializableType type, int ID, string method, SerializableType[] parameterTypes, byte[] parameter, byte[] changedObjects, ObjectNotificationRequest[] notificationRequests)
        {
            if (type == null) throw new ArgumentNullException("type");

            var req = InitializeRequest(InvokeServerMethodUri);
            using (var reqStream = req.GetRequestStream())
            using (var reqWriter = _writerFactory.Invoke(new BinaryWriter(reqStream)))
            {
                reqWriter.Write(version);
                reqWriter.Write(type);
                reqWriter.Write(ID);
                reqWriter.Write(method);
                reqWriter.Write(parameterTypes);
                reqWriter.Write(parameter);
                reqWriter.Write(changedObjects);
                reqWriter.Write(notificationRequests);
            }
            try
            {
                using (var response = req.GetResponse())
                using (var input = response.GetResponseStream())
                using (var reader = _readerFactory.Invoke(new BinaryReader(input)))
                {
                    reader.Read(out retChangedObjects);
                    return reader.ReadByteArray();
                }
            }
            catch (WebException ex)
            {
                var errorMsg = String.Format("Error when accessing server({0}): {1}: {2}", InvokeServerMethodUri, ex.Status, ex.Response);
                Log.Error(errorMsg);
                throw new ApplicationException(errorMsg, ex);
            }
        }