public override void WriteTo(IBufferedSink p_sink) { // 需要另一个代理类来获取写入的长度 ExForwardingSink forwardingSink = new ExForwardingSink(p_sink, _progressListener, ContentLength()); // 转一下 IBufferedSink bufferedSink = OkIO.Buffer(forwardingSink); // 写数据 _body.WriteTo(bufferedSink); // 刷新写入 bufferedSink.Flush(); }
public override void WriteTo(IBufferedSink p0) { try { IBufferedSink bufferedSink; countingSink = new CountingSink(this, p0); bufferedSink = OkIO.Buffer(countingSink); _body.WriteTo(bufferedSink); bufferedSink.Flush(); } catch (Java.IO.IOException ex) { _listener?.OnError(_tag, ex.ToString()); } }
private Response Decompress(Response response) { _logger?.LogDebug("Decompress response"); var source = response.Headers("Content-Encoding").Contains("gzip") ? (ISource) new GzipSource(response.Body().Source()) : (ISource) new InflaterSource(response.Body().Source(), new Inflater()); var bodyString = OkIO.Buffer(source).ReadUtf8(); var responseBody = ResponseBody.Create(bodyString, response.Body().ContentType()); var strippedHeaders = response.Headers().NewBuilder() .RemoveAll("Content-Encoding") .RemoveAll("Content-Length") .Build(); return(response.NewBuilder() .Headers(strippedHeaders) .Body(responseBody) .Message(response.Message()) .Build()); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.main); var doThings = FindViewById <Button>(Resource.Id.doThings); doThings.Click += delegate { var buffer = OkIO.Buffer(new RandomSource(5)); var bytes = buffer.ReadByteArray(3); buffer.Close(); new AlertDialog.Builder(this) .SetTitle("OkIO") .SetMessage("BYTES: " + string.Join(", ", bytes)) .SetNeutralButton("OK", (sender, e) => ((AlertDialog)sender).Dismiss()) .Create() .Show(); }; }