protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var java_uri = request.RequestUri.GetComponents(UriComponents.AbsoluteUri, UriFormat.UriEscaped);
            var url = new Java.Net.URL(java_uri);

            var body = default(RequestBody);
            if (request.Content != null) {
                var bytes = await request.Content.ReadAsByteArrayAsync().ConfigureAwait(false);
                body = RequestBody.Create(MediaType.Parse(request.Content.Headers.ContentType.MediaType), bytes);
            }

            var builder = new Request.Builder()
                .Method(request.Method.Method.ToUpperInvariant(), body)
                .Url(url);

            var keyValuePairs = request.Headers
                .Union(request.Content != null ?
                    (IEnumerable<KeyValuePair<string, IEnumerable<string>>>)request.Content.Headers :
                    Enumerable.Empty<KeyValuePair<string, IEnumerable<string>>>());

            foreach (var kvp in keyValuePairs) builder.AddHeader(kvp.Key, String.Join(",", kvp.Value));

            cancellationToken.ThrowIfCancellationRequested();

            var rq = builder.Build();
            var call = client.NewCall(rq);
            cancellationToken.Register(() => call.Cancel());

            var resp = default(Response);
            try {
                resp = await call.EnqueueAsync().ConfigureAwait(false);
            } catch (IOException ex) {
                if (ex.Message.ToLowerInvariant().Contains("canceled")) {
                    throw new OperationCanceledException();
                }

                throw;
            }

            var respBody = resp.Body();

            cancellationToken.ThrowIfCancellationRequested();

            var ret = new HttpResponseMessage((HttpStatusCode)resp.Code());
            if (respBody != null) {
                var content = new ProgressStreamContent(respBody.ByteStream(), cancellationToken);
                content.Progress = getAndRemoveCallbackFromRegister(request);
                ret.Content = content;
            } else {
                ret.Content = new ByteArrayContent(new byte[0]);
            }

            var respHeaders = resp.Headers();
            foreach (var k in respHeaders.Names()) {
                ret.Headers.TryAddWithoutValidation(k, respHeaders.Get(k));
                ret.Content.Headers.TryAddWithoutValidation(k, respHeaders.Get(k));
            }

            return ret;
        }
Example #2
0
        string LoadAWOkHttpClientAsync(string urlText)
        {
            Response response = null;

            try
            {
                OkHttpClient clientOrg = new OkHttpClient();
                OkHttpClient client    = AWOkHttpClient.CopyWithDefaults(clientOrg, new AllowAllTrustManager());
                Request      request   = new Request.Builder()
                                         .Url(urlText)
                                         .Build();

                response = client.NewCall(request).Execute();
                string responseCode = "Response Code: " + response.Code();
                return(responseCode);
            }
            catch (IOException e)
            {
                return("IO Exception during network request");
            }
            finally
            {
                if (response != null)
                {
                    response.Body().Close();
                }
            }
        }
        private void getWeather(double latitude, double longitude)
        {
            string apiKey = "32b0b275eea19d641b0069e91c91b50a";
            string apiUrl = "https://api.forecast.io/forecast/" + apiKey + "/" + latitude + "," + longitude;

            if (isNetworkAvailable())
            {
                RunOnUiThread(() => toggleRefresh());
                OkHttpClient client  = new OkHttpClient();
                Request      request = new Request.Builder().Url(apiUrl).Build();
                Call         call    = client.NewCall(request);
                call.Enqueue(response => {
                    RunOnUiThread(() => toggleRefresh());
                    var jsonData    = JObject.Parse(response.Body().String());
                    mCurrentWeather = getCurrentDetails(jsonData);
                    RunOnUiThread(() => updateDisplay());
                }, (req, exception) => {
                    ShowError();
                });
            }
            else
            {
                Toast.MakeText(this, "Network unavailable", ToastLength.Long).Show();
            }
        }
Example #4
0
        public void Delete(string url, Action <ICall, Response> onResponse, Action <ICall, Java.IO.IOException> onFailure)
        {
            Request request = new Request.Builder().Url(url).Delete().Build();

            okHttpClient.NewCall(request).Enqueue(onResponse, onFailure);
            okHttpClient.Dispose();
        }
        FileUploadResponse MakeRequest(string url, string tag, MultipartBuilder requestBodyBuilder, IDictionary <string, string> headers = null)
        {
            //RequestBody requestBody = requestBodyBuilder.Build();
            CountingRequestBody requestBody = new CountingRequestBody(requestBodyBuilder.Build(), tag, this);
            var requestBuilder = new Request.Builder();

            if (headers != null)
            {
                foreach (string key in headers.Keys)
                {
                    if (!string.IsNullOrEmpty(headers[key]))
                    {
                        requestBuilder = requestBuilder.AddHeader(key, headers[key]);
                    }
                }
            }

            Request request = requestBuilder
                              .Url(url)
                              .Post(requestBody)
                              .Build();

            OkHttpClient client = new OkHttpClient();

            client.SetConnectTimeout(ConnectUploadTimeout, UploadTimeoutUnit); // connect timeout
            client.SetReadTimeout(SocketUploadTimeout, UploadTimeoutUnit);     // socket timeout

            Response response       = client.NewCall(request).Execute();
            var      responseString = response.Body().String();
            var      code           = response.Code();

            IDictionary <string, string> responseHeaders = new Dictionary <string, string>();
            var rHeaders = response.Headers();

            if (rHeaders != null)
            {
                var names = rHeaders.Names();
                foreach (string name in names)
                {
                    if (!string.IsNullOrEmpty(rHeaders.Get(name)))
                    {
                        responseHeaders.Add(name, rHeaders.Get(name));
                    }
                }
            }

            FileUploadResponse fileUploadResponse = new FileUploadResponse(responseString, code, tag, new ReadOnlyDictionary <string, string>(responseHeaders));


            if (response.IsSuccessful)
            {
                FileUploadCompleted(this, fileUploadResponse);
            }
            else
            {
                FileUploadError(this, fileUploadResponse);
            }

            return(fileUploadResponse);
        }
Example #6
0
            public void login(Employee user, IAppObserver client)
            {
                if (!isInitialized)
                {
                    initializeConnection();
                    this.isInitialized = true;
                }
                UserDTO udto = DTOUtils.getDTO(user);
                Request req  = new Request.Builder().Type(RequestType.LOGIN).Data(udto).Build();

                sendRequest(req);
                logger.Debug("PROXY CLIENT: login SENT REQUEST");
                Response response = readResponse();

                logger.Debug("PROXY CLIENT: login RECEIVED RESPONSE @");
                if (response.Type() == ResponseType.OK)
                {
                    this.client = client;
                    logger.Debug("PROXY CLIENT: SUCCESSFUL login");
                    return;
                }
                if (response.Type() == ResponseType.ERROR)
                {
                    String err = response.Data().ToString();
                    closeConnection();
                    logger.Debug("PROXY CLIENT: FAILED login");
                    throw new ServicesException(err);
                }
            }
Example #7
0
            public Show ticketsSold(Show show, Ticket t)
            {
                ShowDTO   showDTO   = DTOUtils.getDTO(show);
                TicketDTO ticketDTO = DTOUtils.getDTO(t);

                Object[] sendData = new Object[2];
                sendData[0] = showDTO;
                sendData[1] = ticketDTO;
                Request req = new Request.Builder().Type(RequestType.TICKETS_SOLD).Data(sendData).Build();

                sendRequest(req);
                logger.Debug("PROXY CLIENT: ticketsSold SENT REQUEST WARNING: THIS FUNCTION HAS NO RESPONSE!!!");
                Response response = readResponse();

                if (response.Type() == ResponseType.UPDATED_SHOWS)
                {
                    logger.Debug("PROXY CLIENT: SUCCESSFUL update");
                    return(null);
                }
                if (response.Type() == ResponseType.ERROR)
                {
                    String err = response.Data().ToString();
                    throw new ServicesException(err);
                }
                logger.Debug("PROXY CLIENT: SUCCESSFUL ticketsSold WARNING: THIS FUNCTION HAS NO RESPONSE!!!");
                return(null);
            }
Example #8
0
            public Show[] findAllShows()
            {
                if (!isInitialized)
                {
                    initializeConnection();
                    this.isInitialized = true;
                }
                Request req = new Request.Builder().Type(RequestType.GET_SHOWS).Build();

                sendRequest(req);
                logger.Debug("PROXY CLIENT: findAllShow SENT REQUEST");
                Response response = readResponse();

                logger.Debug("PROXY CLIENT: findAllShow RECEIVED RESPONSE");
                if (response.Type() == ResponseType.ERROR)
                {
                    String err = response.Data().ToString();
                    logger.Debug("PROXY CLIENT: FAILED findAllSho");
                    throw new ServicesException(err);
                }
                ShowDTO[] showsDTOS = (ShowDTO[])response.Data();
                Show[]    shows     = DTOUtils.getFromDTO(showsDTOS);
                logger.Debug("PROXY CLIENT: SUCCESSFUL findAllShow");
                return(shows);
            }
Example #9
0
        //Android3.0 以后已经不允许在主线程访问网络,报错android.os.NetworkOnMainThreadException
        //获取网页内容
        public async System.Threading.Tasks.Task <string> Get(string url)
        {
            //连接超时5秒
            //写入数据超时5秒
            //读取数据超时5秒
            client = new OkHttpClient.Builder()
                     .ConnectTimeout(5, TimeUnit.Seconds)
                     .WriteTimeout(5, TimeUnit.Seconds)
                     .ReadTimeout(5, TimeUnit.Seconds)
                     .Build();
            Request  request  = new Request.Builder().Url(url).Build();
            Response response = await client.NewCall(request).ExecuteAsync();

            if (response.Code() == 200)
            {
                //Toast.MakeText(this, "response.Code() == 200", ToastLength.Short).Show();
                var content = response.Body().String();

                return(content);
            }
            else
            {
                return("null");
            }
        }
Example #10
0
        public async Task <string> Post(string url, string body, string authToken = null)
        {
            RequestBody requestBody = RequestBody.Create(JSON, body);
            Request     request     = new Request.Builder().Url(url).Post(requestBody).Build();

            return(await SendRequest(request, authToken));
        }
Example #11
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            Button startTest = FindViewById<Button>(Resource.Id.startTest);
            ListView listView = FindViewById<ListView>(Resource.Id.listView);

            startTest.Click += delegate
            {
                ArrayAdapter<string> adapter = new ArrayAdapter<string>(
                    this,
                    Android.Resource.Layout.SimpleListItem1,
                    Android.Resource.Id.Text1);
                listView.Adapter = adapter;

                OkHttpClient client = new OkHttpClient();

                // Create request for remote resource.
                Request request = new Request.Builder()
                    .Url(Endpoint)
                    .Build();

                // Execute the request and retrieve the response.
                WebSocketCall call = WebSocketCall.Create(client, request);
                WebSocketListener listener = call.Enqueue();

                // attach handlers to the various events
                listener.Close += (sender, e) =>
                {
                    RunOnUiThread(() => adapter.Add(string.Format("{0}: {1}", e.Code, e.Reason)));
                };
                listener.Failure += (sender, e) =>
                {
                    if (e.Exception != null)
                        RunOnUiThread(() => adapter.Add(e.Exception.Message));
                    else
                        RunOnUiThread(() => adapter.Add("Unknown Error!"));
                };
                listener.Message += (sender, e) =>
                {
                    string payload = e.Payload.String();
                    e.Payload.Close();
					RunOnUiThread(() => adapter.Add(string.Format("{0}\n{1}", payload, e.Payload.ContentType())));
                };
                listener.Open += (sender, e) =>
                {
                    RunOnUiThread(() => adapter.Add("Opened Web Socket."));

                    StartMessages(e.WebSocket);
                };
                listener.Pong += (sender, e) =>
                {
                    string payload = e.Payload.ReadString(Charset.DefaultCharset());
                    e.Payload.Close();
                    RunOnUiThread(() => adapter.Add(payload));
                };
            };
        }
Example #12
0
        public async Task <string> GetRequest(string url)
        {
            string result = null;

            var client = new OkHttpClient();

            try
            {
                var request = new Request.Builder()
                              .Url(url)
                              .Build();

                var response = await client.NewCall(request).ExecuteAsync();

                var body = response.Body().String();

                result = body;
            }
            catch (Exception ex)
            {
                _logService.LogException(ex);
            }

            return(result);
        }
Example #13
0
        public void Post(string url, string content, Action <ICall, Response> onResponse, Action <ICall, Java.IO.IOException> onFailure)
        {
            var body = RequestBody.Create(MediaType.Parse("text/plain"), Encoding.UTF8.GetBytes(content));

            Request request = new Request.Builder().Url(url).Post(body).Build();

            okHttpClient.NewCall(request).Enqueue(onResponse, onFailure);
        }
Example #14
0
        public static void sendOkHttpRequests(string address, Okhttp3.ICallback callbck)
        {
            var client = new OkHttpClient();

            Okhttp3.Request requests = new Request.Builder().Url(address).Build();
            requests.Url();
            client.NewCall(requests).Enqueue(callbck);
        }
Example #15
0
        public void Run()
        {
            Request request = new Request.Builder()
                              .Url(IdHostAdress + AccessPoint.Bssid)
                              .AddHeader("Authorization", "Bearer " + _token)
                              .Build();

            client.NewCall(request).Enqueue(this);
        }
Example #16
0
        public async Task <string> GetAsyn(string url)
        {
            Request request = new Request.Builder()
                              .Url(url)
                              .Build();
            Response response = await okHttpClient.NewCall(request).ExecuteAsync();

            return(await response.Body().StringAsync());
        }
Example #17
0
        public static void CreateRequest()
        {
            OkHttpClient okHttpClient = new OkHttpClient();
            Request      request      = new Request.Builder()
                                        .Url(URL)
                                        .Post(RequestBody.Create(Square.OkHttp3.MediaType.Parse("text/x-markdown; charset=utf-8"), REQUESTBODY))
                                        .Build();

            OkHttp3Instrumentation.newCall(okHttpClient, request).Enqueue(new OnresponseOkHttpClient());
        }
Example #18
0
        public async Task <bool> HeadAsyn(string url)
        {
            Request  request  = new Request.Builder().Url(url).Head().Build();
            Response response = await okHttpClient.NewCall(request).ExecuteAsync();

            var code = response.Code();

            okHttpClient.Dispose();
            return(code == (int)System.Net.HttpStatusCode.OK ? true : false);
        }
Example #19
0
        private void CallToken()
        {
            dialog.Show();

            Request request = new Request.Builder()
                              .Url("http://technobee.elementstore.ru/api/person/")
                              .AddHeader("Authorization", "Bearer " + settings.Token)
                              .Build();

            client.NewCall(request).Enqueue(this);
        }
Example #20
0
        public void Post(string url, string basic, List <Param> param, Action <ICall, Response> onResponse, Action <ICall, Java.IO.IOException> onFailure)
        {
            FormBody.Builder builder = new FormBody.Builder();
            foreach (var item in param)
            {
                builder.Add(item.Key, item.Value);
            }
            Request request = new Request.Builder().AddHeader("Authorization", basic).Url(url).Post(builder.Build()).Build();

            okHttpClient.NewCall(request).Enqueue(onResponse, onFailure);
        }
Example #21
0
        public async Task <ResultMessage> GetAsyn(string url)
        {
            Request  request  = new Request.Builder().Url(url).Build();
            Response response = await okHttpClient.NewCall(request).ExecuteAsync();

            var body = await response.Body().StringAsync();

            var code = response.Code();

            switch (code)
            {
            case (int)System.Net.HttpStatusCode.OK:
                return(new ResultMessage()
                {
                    IsError = false, Message = body
                });

            case (int)System.Net.HttpStatusCode.NotFound:
                MobclickAgent.ReportError(Context, body);
                return(new ResultMessage()
                {
                    IsError = true, Message = "404 NotFound"
                });

            case (int)System.Net.HttpStatusCode.Unauthorized:
                MobclickAgent.ReportError(Context, body);
                return(new ResultMessage()
                {
                    IsError = true, Message = "401 Unauthorized"
                });

            case (int)System.Net.HttpStatusCode.InternalServerError:
                MobclickAgent.ReportError(Context, body);
                return(new ResultMessage()
                {
                    IsError = true, Message = "500 InternalServerError"
                });

            case (int)System.Net.HttpStatusCode.BadGateway:
                MobclickAgent.ReportError(Context, body);
                return(new ResultMessage()
                {
                    IsError = true, Message = "502 BadGateway"
                });

            default:
                MobclickAgent.ReportError(Context, body);
                return(new ResultMessage()
                {
                    IsError = true, Message = "网络链接不可用 ,请稍后再试"
                });
            }
        }
Example #22
0
        public void Patch(string url, List <Param> param, Action <ICall, Response> onResponse, Action <ICall, Java.IO.IOException> onFailure)
        {
            FormBody.Builder builder = new FormBody.Builder();
            foreach (var item in param)
            {
                builder.Add(item.Key, item.Value);
            }
            var     body    = builder.Build();
            Request request = new Request.Builder().Url(url).Patch(body).Build();

            okHttpClient.NewCall(request).Enqueue(onResponse, onFailure);
        }
Example #23
0
        public void Post(string url, List <Param> param, Action <ICall, Response> onResponse, Action <ICall, Java.IO.IOException> onFailure)
        {
            FormBody.Builder builder = new FormBody.Builder();
            foreach (var item in param)
            {
                builder.Add(item.Key, item.Value);
            }
            var     body    = builder.Build();
            Request request = new Request.Builder().AddHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8").Url(url).Post(body).Build();

            okHttpClient.NewCall(request).Enqueue(onResponse, onFailure);
        }
Example #24
0
        public void doTheThing(Action <List <Character> > characters)
        {
            try{
                MD5      md5         = System.Security.Cryptography.MD5.Create();
                DateTime Jan1st1970  = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                var      timeStamp   = (long)((DateTime.UtcNow - Jan1st1970).TotalMilliseconds);
                string   api_key     = "insert public key hear";
                string   private_key = "insert private key here";
                byte[]   inputBytes  = System.Text.Encoding.ASCII.GetBytes(timeStamp
                                                                           + private_key
                                                                           + api_key);


                byte[] hash = md5.ComputeHash(inputBytes);

                // step 2, convert byte array to hex string

                StringBuilder sb = new StringBuilder();

                for (int i = 0; i < hash.Length; i++)

                {
                    sb.Append(hash[i].ToString("X2"));
                }
                var thing = sb.ToString().ToLower();
                ;
                var url =
                    new URL("https://gateway.marvel.com:443/v1/public/characters?apikey=550bdabffb29d3cc2bf6813a68021ee4&hash=" + thing + "&ts=" + timeStamp + "&limit=10");//+ "&format=json");
                //var uriBuilder = new UriBuilder();
                //uriBuilder.Scheme = "https";
                //uriBuilder.Host = "gateway.marvel.com";
                //uriBuilder.Path = "v1/public/characters";
                //uriBuilder.Query = "apikey=550bdabffb29d3cc2bf6813a68021ee4";
                //uriBuilder.
                OkHttpClient client  = new OkHttpClient();
                Request      request =
                    new Request
                    .Builder()
                    .Url(url)
                    .Build();
                Response response = client.NewCall(request).Execute();

                var body = response.Body().String().Replace('\"', '"');

                var x      = Newtonsoft.Json.JsonConvert.DeserializeObject <RootObject>(body);
                var things = x.data.results;
                characters(things);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
Example #25
0
        public async Task <Tuple <Boolean, String> > ResolveClusterUrlAsync(String clusterUrl)
        {
            OkHttpClient client  = new OkHttpClient();
            Request      request = new Request.Builder()
                                   .Url(clusterUrl)
                                   .Build();

            Response response = await client.NewCall(request).ExecuteAsync();

            String server = await response.Body().StringAsync();

            return(new Tuple <bool, String>(response.IsSuccessful, server));
        }
Example #26
0
        public async System.Threading.Tasks.Task <byte[]> Get(string url)
        {
            Request  request  = new Request.Builder().Url(url).Build();
            Response response = await httpClient.NewCall(request).ExecuteAsync();

            if (response.Code() == 200)
            {
                var stream = response.Body().ByteStream();
                var bytes  = StreamToBytes(stream);
                return(bytes);
            }
            return(null);
        }
Example #27
0
        private async Task Init()
        {
            var cameraStatus = await Permissions.RequestAsync <Permissions.Camera>();

            var micStatus = await Permissions.RequestAsync <Permissions.Microphone>();

            _webRtcClient = new WebRtcClient(this, _remoteView, _localView, this);

            var dialogTcs = new TaskCompletionSource <string>();

            var linearLayout = new LinearLayout(this);

            linearLayout.Orientation = Orientation.Vertical;
            linearLayout.SetPadding(48, 24, 48, 24);
            var ipAddr = new EditText(this)
            {
                Hint = "IP Address", Text = "192.168.1.119"
            };
            var port = new EditText(this)
            {
                Hint = "Port", Text = "8080"
            };

            linearLayout.AddView(ipAddr);
            linearLayout.AddView(port);

            var alert = new AlertDialog.Builder(this)
                        .SetTitle("Socket Address")
                        .SetView(linearLayout)
                        .SetPositiveButton("OK", (sender, args) =>
            {
                dialogTcs.TrySetResult($"ws://{ipAddr.Text}:{port.Text}");
            })
                        .Create();

            alert.Show();

            var wsUrl = await dialogTcs.Task;

            var okHttpClient = new OkHttpClient.Builder()
                               .ReadTimeout(0, Java.Util.Concurrent.TimeUnit.Milliseconds)
                               .Build();
            var request = new Request.Builder()
                          .Url(wsUrl)
                          .Build();

            _socket = okHttpClient.NewWebSocket(
                request,
                new WebSocketObserver(ReadMessage));
        }
Example #28
0
        private async void MakeHttpCall()
        {
#if __ANDROID__
            var client      = new OkHttpClient();
            var requestBody = RequestBody.Create(
                MediaType.Parse("application/json"),
                "{\"title\":\"foo\",\"body\": \"bar\", \"userId\":\"1\", \"id\":\"1\"}");
            var request = new Request.Builder()
                          .Url("https://jsonplaceholder.typicode.com/posts")
                          .Post(requestBody)
                          .Build();

            var response = await client.NewCall(request).ExecuteAsync();
#endif
        }
Example #29
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            //var vm = new MainViewModel();

            Button button = FindViewById <Button>(Resource.Id.myButton);

            button.Click += async delegate {
                // The easiest way to pin a host is turn on pinning with a broken configuration and read the expected configuration when the connection fails.
                // Be sure to do this on a trusted network, and without man -in-the - middle tools like Charles or Fiddler.

                var hostname = "reqres.in";

                var certificatePinner = new Square.OkHttp3.CertificatePinner.Builder()
                                        .Add(hostname, "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
                                        .Build();

                var client = new OkHttpClient.Builder()
                             .CertificatePinner(certificatePinner)
                             .Build();

                var request = new Request.Builder()
                              .Url("https://" + hostname)
                              .Build();

                var call = client.NewCall(request);

                var response = await call.ExecuteAsync();

                // As expected, this fails with a certificate pinning exception:

                /*Certificate pinning failure!
                 * Peer certificate chain:
                 *  sha256/CZEvkurQ3diX6pndH4Z5/dUNzK1Gm6+n8Hdx/DQgjO0=: CN=sni96286.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated
                 *  sha256/x9SZw6TwIqfmvrLZ/kz1o0Ossjmn728BnBKpUFqGNVM=: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
                 *  sha256/58qRu/uxh4gFezqAcERupSkRYBlBAvfcw7mEjGPLnNU=: CN=COMODO ECC Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
                 * Pinned certificates for reqres.in:
                 *  sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=*/

                // Follow up by pasting the public key hashes from the exception into the NativeMessageHandler certificate pinner's configuration.

                //await vm.Get();
            };
        }
        public Response GetWalkingRoutePlanningResult(LatLng latLng1, LatLng latLng2, bool needEncode)
        {
            string key = mDefaultKey;

            if (needEncode)
            {
                try
                {
                    key = Java.Net.URLEncoder.Encode(mDefaultKey, "UTF-8");
                }
                catch (Java.IO.UnsupportedEncodingException e)
                {
                    e.PrintStackTrace();
                }
            }
            string url = mWalkingRoutePlanningURL + "?key=" + key;

            Response   response    = null;
            JSONObject origin      = new JSONObject();
            JSONObject destination = new JSONObject();
            JSONObject json        = new JSONObject();

            try
            {
                origin.Put("lat", latLng1.Latitude);
                origin.Put("lng", latLng1.Longitude);

                destination.Put("lat", latLng2.Latitude);
                destination.Put("lng", latLng2.Longitude);

                json.Put("origin", origin);
                json.Put("destination", destination);

                RequestBody requestBody = RequestBody.Create(JSON, json.ToString());
                Request     request     = new Request.Builder().Url(url).Post(requestBody).Build();
                response = GetNetClient().InitOkHttpClient().NewCall(request).Execute();
            }
            catch (JSONException e)
            {
                e.PrintStackTrace();
            }
            catch (IOException e)
            {
                e.PrintStackTrace();
            }
            return(response);
        }
Example #31
0
        public override void OnCreate()
        {
            base.OnCreate();

            userId = JwtHelper.GetAspNetUserId(UserSettings.Token);

            dbWriter = new SignalsDBWriter(this);
            timer    = new Timer
            {
                Interval = 30000,
                Enabled  = true
            };

            timer.Elapsed += (s, e) =>
            {
                Logger.Info("trying to sent telemetry...");

                var type      = MediaType.Parse("application/json; charset=utf-8");
                var telemetry = dbWriter.ReadTelemetry(userId, out ids);

                if (telemetry?.Count > 0)
                {
                    var          str     = Newtonsoft.Json.JsonConvert.SerializeObject(telemetry, new Trigger.Classes.TelemetryJsonConverter());
                    var          body    = RequestBody.Create(type, str);
                    OkHttpClient client  = new OkHttpClient();
                    Request      request = new Request.Builder()
                                           .Url(Url)
                                           .Header("scn-dev-msg", "")
                                           .Post(body)
                                           .Build();

                    Callback c = new Callback {
                        Writer = dbWriter, Ids = ids
                    };

                    var all_signals = telemetry.SelectMany(b => b.Select(i => i)).ToList();

                    Logger.Info("Send Telemetry: " + all_signals.Count.ToString());
                    client.NewCall(request).Enqueue(c);
                }
                else
                {
                    Logger.Info("No signals to send");
                }
            };
        }
        private async Task <HttpResponseMessage> HttpGet(string url)
        {
            var client = new OkHttpClient();

            client.SetHostnameVerifier(new HostnameVerifier());
            client.SetSslSocketFactory(GetSocketFactory());

            var builder = new Request.Builder()
                          .Method("GET", null)
                          .Url(url)
                          .CacheControl(new CacheControl.Builder().NoCache().Build())
                          .AddHeader("User-Agent", "Test/1.0");

            var rq   = builder.Build();
            var call = client.NewCall(rq);

            System.Diagnostics.Debug.WriteLine("Sending Call...");

            var resp = await call.EnqueueAsync().ConfigureAwait(false);

            System.Diagnostics.Debug.WriteLine("Got response");

            var respBody = resp.Body();

            var ret = new HttpResponseMessage((HttpStatusCode)resp.Code());

            ret.ReasonPhrase = resp.Message();
            if (respBody != null)
            {
                ret.Content = new StreamContent(respBody.ByteStream());
            }
            else
            {
                ret.Content = new ByteArrayContent(new byte[0]);
            }

            var respHeaders = resp.Headers();

            foreach (var k in respHeaders.Names())
            {
                ret.Headers.TryAddWithoutValidation(k, respHeaders.Get(k));
                ret.Content.Headers.TryAddWithoutValidation(k, respHeaders.Get(k));
            }

            return(ret);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            Button download = FindViewById<Button>(Resource.Id.download);
            ListView listView = FindViewById<ListView>(Resource.Id.listView);

            download.Click += async delegate
            {
                OkHttpClient client = new OkHttpClient();

                // Create request for remote resource.
                Request request = new Request.Builder()
                    .Url(Endpoint)
                    .Build();

                // Execute the request and retrieve the response.
                Response response = await client.NewCall(request).ExecuteAsync();

                // Deserialize HTTP response to concrete type.
                string body = await response.Body().StringAsync();
                List<Contributor> contributors = JsonConvert.DeserializeObject<List<Contributor>>(body);

                // Sort list by the most contributions.
                List<string> data = contributors
                    .OrderByDescending(c => c.contributions)
                    .Select(c => string.Format("{0} ({1})", c.login, c.contributions))
                    .ToList();

                // Output list of contributors.
                IListAdapter adapter = new ArrayAdapter<string>(
                    this,
                    Android.Resource.Layout.SimpleListItem1,
                    Android.Resource.Id.Text1,
                    data);
                listView.Adapter = adapter;
            };
        }
 /// <exception cref="IOException">This method might throw this exception.</exception>
 protected override Stream GetStreamFromNetwork(string imageUri, Java.Lang.Object extra)
 {
     Request request = new Request.Builder().Url(imageUri).Build();
     return client.NewCall(request).Execute().Body().ByteStream();
 }
        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var java_uri = request.RequestUri.GetComponents(UriComponents.AbsoluteUri, UriFormat.UriEscaped);
            var url = new Java.Net.URL(java_uri);

            var body = default(RequestBody);
            if (request.Content != null) {
                var bytes = await request.Content.ReadAsByteArrayAsync().ConfigureAwait(false);

                var contentType = "text/plain";
                if (request.Content.Headers.ContentType != null) {
                    contentType = String.Join(" ", request.Content.Headers.GetValues("Content-Type"));
                }
                body = RequestBody.Create(MediaType.Parse(contentType), bytes);
            }

            var builder = new Request.Builder()
                .Method(request.Method.Method.ToUpperInvariant(), body)
                .Url(url);

            if (DisableCaching) {
                builder.CacheControl(noCacheCacheControl);
            }

            var keyValuePairs = request.Headers
                .Union(request.Content != null ?
                    (IEnumerable<KeyValuePair<string, IEnumerable<string>>>)request.Content.Headers :
                    Enumerable.Empty<KeyValuePair<string, IEnumerable<string>>>());

            foreach (var kvp in keyValuePairs) builder.AddHeader(kvp.Key, String.Join(getHeaderSeparator(kvp.Key), kvp.Value));

            cancellationToken.ThrowIfCancellationRequested();

            var rq = builder.Build();
            var call = client.NewCall(rq);

            // NB: Even closing a socket must be done off the UI thread. Cray!
            cancellationToken.Register(() => Task.Run(() => call.Cancel()));

            var resp = default(Response);
            try {
                resp = await call.EnqueueAsync().ConfigureAwait(false);
                var newReq = resp.Request();
                var newUri = newReq == null ? null : newReq.Uri();
                request.RequestUri = new Uri(newUri.ToString());
                if (throwOnCaptiveNetwork && newUri != null) {
                    if (url.Host != newUri.Host) {
                        throw new CaptiveNetworkException(new Uri(java_uri), new Uri(newUri.ToString()));
                    }
                }
            } catch (IOException ex) {
                if (ex.Message.ToLowerInvariant().Contains("canceled")) {
                    throw new OperationCanceledException();
                }

                throw;
            }

            var respBody = resp.Body();

            cancellationToken.ThrowIfCancellationRequested();

            var ret = new HttpResponseMessage((HttpStatusCode)resp.Code());
            ret.RequestMessage = request;
            ret.ReasonPhrase = resp.Message();
            if (respBody != null) {
                var content = new ProgressStreamContent(respBody.ByteStream(), CancellationToken.None);
                content.Progress = getAndRemoveCallbackFromRegister(request);
                ret.Content = content;
            } else {
                ret.Content = new ByteArrayContent(new byte[0]);
            }

            var respHeaders = resp.Headers();
            foreach (var k in respHeaders.Names()) {
                ret.Headers.TryAddWithoutValidation(k, respHeaders.Get(k));
                ret.Content.Headers.TryAddWithoutValidation(k, respHeaders.Get(k));
            }

            return ret;
        }
 private void getWeather(double latitude, double longitude)
 {
     string apiKey = "32b0b275eea19d641b0069e91c91b50a";
     string apiUrl = "https://api.forecast.io/forecast/" + apiKey + "/" + latitude + "," + longitude;
     if (isNetworkAvailable ()) {
         RunOnUiThread(() => toggleRefresh());
         OkHttpClient client = new OkHttpClient ();
         Request request = new Request.Builder ().Url (apiUrl).Build ();
         Call call = client.NewCall (request);
         call.Enqueue (response =>  {
             RunOnUiThread(() => toggleRefresh());
             var jsonData = JObject.Parse (response.Body ().String ());
             mCurrentWeather = getCurrentDetails (jsonData);
             RunOnUiThread(() => updateDisplay());
         }, (req, exception) =>  {
             ShowError ();
         });
     }
     else {
         Toast.MakeText (this, "Network unavailable", ToastLength.Long).Show ();
     }
 }