Example #1
0
 public bool login(string accout, string passwd)
 {
     try
     {
         if (token != null)
         {
             http.Request.AddExtraHeader("Authorization", token);
             return(true);
         }
         else
         {
             dynamic      customer = new { account = accout, password = MD5.CalcString(passwd) }; // Or any dynamic type
             HttpResponse a        = http.Post(url + APIConst.GetToken, customer, HttpContentTypes.ApplicationJson);
             var          dd       = a.DynamicBody;
             if (!string.IsNullOrEmpty(dd.token))
             {
                 token = "bearer " + dd.token;
                 http.Request.AddExtraHeader("Authorization", token);
                 return(true);
             }
             return(false);
         }
     }
     catch (Exception e)
     {
         return(false);
     }
 }
		public void POST_LanguageNotSupported_BadRequest()
		{
			var client = new HttpClient();
			HttpResponse response = client.Post(UrlFor("/translation"),
				new TranslationMsg { Code = "ES", Language = "notSupported", Data = "something" },
				HttpContentTypes.ApplicationJson);

			Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
		}
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var toAdd = new InvoiceAdd()
            {
                TermsAndConditions = Guid.NewGuid().ToString()
            };

            var http = new EasyHttp.Http.HttpClient();

            // http.Post("http://localhost:32772/api/Invoice", toAdd, HttpContentTypes.ApplicationJson);
            var response = http.Post("http://localhost:55526/api/Invoice", toAdd, HttpContentTypes.ApplicationJson);

            MessageBox.Show(response.StatusCode.ToString());
        }
        public static EasyHttp.Http.HttpResponse send(TextMessageView view)
        {
            var deliveredUrl = "http://www.adoer.se/api/sms/deliveredelk";
            var responseUrl = "http://www.adoer.se/api/sms/recieveelk";

            var apiUrl = "https://api.46elks.com/a1/SMS";

            var username = "******";
            var password = "******";

            var data = String.Format("from={0}&to={1}&message={2}&whendelivered={3}$sms_url={4}",
                view.from, view.to, view.message, deliveredUrl, responseUrl);

            var http = new EasyHttp.Http.HttpClient();
            http.Request.SetBasicAuthentication(username, password);

            return http.Post(apiUrl, data, HttpContentTypes.ApplicationXWwwFormUrlEncoded);
        }
        public HttpResponse Request(string method, string url, WebHeaderCollection headers, string body)
        {
            var client = new HttpClient();

            client.ThrowExceptionOnHttpError = false;

            foreach (var header in headers.AllKeys)
            {
                var value = headers[header];

                switch (header)
                {
                    case "Content-Type":
                        client.Request.ContentType = value;
                        break;
                    case "User-Agent":
                        client.Request.UserAgent = value;
                        break;
                    default:
                        client.Request.AddExtraHeader(header, value);
                        break;
                }
            }

            try
            {
                var response = client.Post(url, body, headers["Content-Type"]);

                return new HttpResponse()
                {
                    Status = new HttpStatus()
                    {
                        Code = response.StatusCode,
                        Message = response.StatusDescription
                    },
                    Headers = response.RawHeaders,
                    Body = response.RawText
                };
            }
            catch (WebException exception)
            {
                throw new UserAppException(exception.Message, exception);
            }
        }
        public HttpResponseMessage PostElk(TextMessageView view)
        {
            var deliveredUrl = "http://www.adoer.se/api/sms/deliveredelk";
            var responseUrl  = "http://www.adoer.se/api/sms/recieveelk";
            var apiUrl       = "https://api.46elks.com/a1/SMS";

            var username = "******";
            var password = "******";

            var data = String.Format("from={0}&to={1}&message={2}&whendelivered={3}$sms_url={4}",
                                     view.from, view.to, view.message, deliveredUrl, responseUrl);

            var http = new EasyHttp.Http.HttpClient();

            http.Request.SetBasicAuthentication(username, password);

            var ans = http.Post(apiUrl, data, HttpContentTypes.ApplicationXWwwFormUrlEncoded);

            var model = view.getModel();

            model.created = DateTime.UtcNow;

            if (ans.StatusCode == HttpStatusCode.OK)
            {
                var body = ans.DynamicBody;

                model.apiId = body.id;
                model.error = false;

                model = repo.createTextMessage(model);

                return(Request.CreateResponse(ans.StatusCode, model));
            }
            else
            {
                var message = ans.RawText.Replace("\"", String.Empty);

                model.error        = true;
                model.errorMessage = message;
                model = repo.createTextMessage(model);

                return(Request.CreateResponse(ans.StatusCode, message));
            }
        }
        public static EasyHttp.Http.HttpResponse send(TextMessageView view)
        {
            var deliveredUrl = "http://www.adoer.se/api/sms/deliveredelk";
            var responseUrl  = "http://www.adoer.se/api/sms/recieveelk";

            var apiUrl = "https://api.46elks.com/a1/SMS";

            var username = "******";
            var password = "******";

            var data = String.Format("from={0}&to={1}&message={2}&whendelivered={3}$sms_url={4}",
                                     view.from, view.to, view.message, deliveredUrl, responseUrl);

            var http = new EasyHttp.Http.HttpClient();

            http.Request.SetBasicAuthentication(username, password);

            return(http.Post(apiUrl, data, HttpContentTypes.ApplicationXWwwFormUrlEncoded));
        }
        public HttpResponseMessage PostElk(TextMessageView view)
        {
            var deliveredUrl = "http://www.adoer.se/api/sms/deliveredelk";
            var responseUrl = "http://www.adoer.se/api/sms/recieveelk";
            var apiUrl = "https://api.46elks.com/a1/SMS";

            var username = "******";
            var password = "******";

            var data = String.Format("from={0}&to={1}&message={2}&whendelivered={3}$sms_url={4}",
                view.from, view.to, view.message, deliveredUrl, responseUrl);

            var http = new EasyHttp.Http.HttpClient();
            http.Request.SetBasicAuthentication(username, password);

            var ans = http.Post(apiUrl, data, HttpContentTypes.ApplicationXWwwFormUrlEncoded);

            var model = view.getModel();
            model.created = DateTime.UtcNow;

            if (ans.StatusCode == HttpStatusCode.OK)
            {
                var body = ans.DynamicBody;

                model.apiId = body.id;
                model.error = false;

                model = repo.createTextMessage(model);

                return Request.CreateResponse(ans.StatusCode, model);
            }
            else
            {
                var message = ans.RawText.Replace("\"", String.Empty);

                model.error = true;
                model.errorMessage = message;
                model = repo.createTextMessage(model);

                return Request.CreateResponse(ans.StatusCode, message);
            }
        }
        public void PostMessage(string channelId, string text)
        {
            // It is only allowed to post messages to users via their IM channel id.
            if (channelId.StartsWith("U"))
            {
                channelId = SlackUserToIm(channelId);
            }

            var url = string.Format("https://slack.com/api/chat.postMessage?token={0}&channel={1}&as_user=true", SlackWindowsTray.Default.SlackToken, channelId);

            dynamic data = new ExpandoObject(); // Or any dynamic type
            data.text = text;

            var http = new HttpClient();
            var response = http.Post(url, data, HttpContentTypes.ApplicationXWwwFormUrlEncoded).DynamicBody;
            if (!response.ok)
            {
                throw new ExternalException("Message failed: " + response);
            }
        }
        private void ChangeServerStatus(string status)
        {
            var http = new HttpClient();
            var uri = new Uri(_agentUri, "update-status");

            var data = new ExpandoObject() as IDictionary<string, object>;
            data.Add("name", _config.LoadBalancerServerId);
            data.Add("status", status);

            foreach (var parameter in _config.LoadBalancerParameters)
            {
                data.Add(parameter.Key.ToLower(), parameter.Value);
            }

            var result = http.Post(uri.ToString(), data, HttpContentTypes.ApplicationJson);
            if (result.StatusCode != HttpStatusCode.OK)
            {
                throw new LoadBalancerCommunicationException("Failed to enable server in load balancer, response: " + result.RawText);
            }
        }
        public Uri UploadImage(BitmapSource bitmapSource, UploadConfig config)
        {
            string url = config.Url;
            string userName = config.UserName;
            string password = config.Password;

            HttpClient http = new HttpClient();
            http.Request.Accept = HttpContentTypes.ApplicationJson;

            string apiUrl = url + "/api.php";

            // at first, request action=login (to get token)
            var paramsLogin1 = new Dictionary<string, string>()
                {
                    {"action", "login"},
                    {"format", "json"},
                    {"lgname", userName},
                    {"lgpassword", password}
                };

            var respLogin1 = http.Post(apiUrl, paramsLogin1, HttpContentTypes.ApplicationXWwwFormUrlEncoded);
            var treeLogin1 = respLogin1.DynamicBody;

            string resultLogin1 = treeLogin1.login.result;
            if (resultLogin1 != "NeedToken")
            {
                throw new UploadFailedException(
                    String.Format("Failed to login (first). You may be using older MediaWiki. (result: {0})", resultLogin1));
            }

            string token = treeLogin1.login.token;
            string cookieprefix = treeLogin1.login.cookieprefix;
            Cookie cookieSession = respLogin1.Cookies[cookieprefix + "_session"];

            // next, request login really.
            var paramsLogin2 = new Dictionary<string, string>()
                {
                    {"action", "login"},
                    {"format", "json"},
                    {"lgname", userName},
                    {"lgpassword", password},
                    {"lgtoken", token}
                };
            http.Request.Cookies = respLogin1.Cookies;
            var respLogin2 = http.Post(apiUrl, paramsLogin2, HttpContentTypes.ApplicationXWwwFormUrlEncoded);
            var treeLogin2 = respLogin2.DynamicBody;

            string resultLogin2 = treeLogin2.login.result;
            if (resultLogin2 != "Success")
            {
                throw new UploadFailedException(
                    String.Format("Failed to login. Check username and password. (result: {0})", resultLogin2));
            }

            string userId = treeLogin2.login.lguserid.ToString();
            string lgtoken = treeLogin2.login.lgtoken;

            // get edittoken
            http.Request.Cookies.Add(new Cookie(cookieprefix + "UserName", userName, "/", cookieSession.Value));
            http.Request.Cookies.Add(new Cookie(cookieprefix + "UserId", userId, "/", cookieSession.Value));
            http.Request.Cookies.Add(new Cookie(cookieprefix + "Token", lgtoken, "/", cookieSession.Value));
            var paramsQuery = new Dictionary<string, string>()
                {
                    {"action", "query"},
                    {"format", "json"},
                    {"prop", "info"},
                    {"intoken", "edit"},
                    {"titles", "NonExistPageToGetEditToken"}
                };

            var respQuery = http.Post(apiUrl, paramsQuery, HttpContentTypes.ApplicationXWwwFormUrlEncoded);
            var treeQuery = respQuery.DynamicBody;

            var pages = treeQuery.query.pages;
            // "pages" has "-1" key... since to call "-1" is difficult. this is dirty way.
            var page = (dynamic) ((IDictionary<string, object>)pages)["-1"];
            string edittoken = page.edittoken;

            if (edittoken.Length < 3) {
                throw new UploadFailedException(
                    String.Format("Failed to get edittoken (edittoken: {0})", edittoken));
            }

            string filename = ScreenToWikiUtil.GetFileName(".png");
            string descriptionUrl = null;
            ScreenToWikiUtil.UseTempDir((tempDir) =>
            {
                string path = System.IO.Path.Combine(tempDir, filename);

                ScreenToWikiUtil.SavePngFile(bitmapSource, path);

                var fileData = new FileData();
                fileData.ContentType = "image/png";
                fileData.ContentTransferEncoding = HttpContentEncoding.Binary;
                fileData.FieldName = "file";
                fileData.Filename = path;

                var paramsUpload = new Dictionary<string, object>()
                    {
                        {"action", "upload"},
                        {"format", "json"},
                        {"filename", filename},
                        {"token", edittoken}
                    };
                var respUpload = http.Post(apiUrl, paramsUpload, new List<FileData>() {fileData});
                var respTree = respUpload.DynamicBody;

                string result = respTree.upload.result;

                if (result != "Success")
                {
                    throw new UploadFailedException(String.Format("Uploading failed (result: {0})", result));
                }

                descriptionUrl = respTree.upload.imageinfo.descriptionurl;
            });

            return new Uri(descriptionUrl);
        }
		public void POST_DidNotExist_ResourceCreated()
		{
			var repository = Substitute.For<ITranslationRepository>();
			Replacing(repository);
			repository.Create(Arg.Any<TranslationMdl>()).Returns(true);

			var client = new HttpClient();
			client.Request.Accept = HttpContentTypes.ApplicationJson;
			HttpResponse response = client.Post(UrlFor("/translation"),
				new TranslationMsg { Code = "DK", Language = "es", Data = "Dinamarca" },
				HttpContentTypes.ApplicationJson);

			Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created));

			Assert.That(response.DynamicBody.success, Is.True);
			var expectedUri = new Uri(BaseUrl, new Uri("/translation/DK/es", UriKind.Relative));
			Assert.That(response.DynamicBody.uri, Is.EqualTo(expectedUri.ToString()));

		}
		public void POST_AlreadyExists_MethodNotAllowed()
		{
			var repository = Substitute.For<ITranslationRepository>();
			Replacing(repository);
			repository.Create(Arg.Any<TranslationMdl>()).Returns(false);

			var client = new HttpClient();
			HttpResponse response = client.Post(UrlFor("/translation"),
				new TranslationMsg { Code = "DK", Language = "es", Data = "Dinamarca" },
				HttpContentTypes.ApplicationJson);

			Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.MethodNotAllowed));
		}
		public void POST_DidNotExist_TranslationCreated()
		{
			var repository = Substitute.For<ITranslationRepository>();
			Replacing(repository);

			string code = "DK", language = "es", data = "Dinamarca";
			var client = new HttpClient();
			client.Post(UrlFor("/translation"),
				new TranslationMsg { Code = code, Language = language, Data = data },
				HttpContentTypes.ApplicationJson);

			repository.Received().Create(Arg.Is<TranslationMdl>(m =>
				m.Language == language &&
				m.Alpha2 == code &&
				m.Name == data));
		}
        /// <summary>
        /// 创建走班任务
        /// </summary>
        /// <param name="cl"></param>
        /// <returns></returns>
        public Tuple <bool, long, string> CreateJXB(CLTransfer cl)
        {
            var body = Newtonsoft.Json.JsonConvert.SerializeObject(cl);

            var postUrl = this.GetPostUrl("mission.jxb.create", body);

            var response = _easyHttpClient.Post(postUrl, body, HttpContentTypes.ApplicationJson);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var result = Newtonsoft.Json.JsonConvert.DeserializeObject <ResponseInfo>(response.RawText);
                if (result.code == 20000)
                {
                    var taskID = long.Parse(result.result);
                    return(Tuple.Create <bool, long, string>(true, taskID, string.Empty));
                }
                else
                {
                    var message = result.msg;
                    List <MessageInfo> messageInfo;
                    try
                    {
                        messageInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <List <MessageInfo> >(message);
                        StringBuilder stringBuilder = new StringBuilder();
                        messageInfo.ForEach(mi => {
                            stringBuilder.AppendLine($"({mi.ErrorCode}){mi.Description}");
                        });

                        return(Tuple.Create <bool, long, string>(false, 0, stringBuilder.ToString()));
                    }
                    catch
                    {
                        return(Tuple.Create <bool, long, string>(false, 0, $"{result.msg}"));
                    }
                }
            }
            else
            {
                return(Tuple.Create <bool, long, string>(false, 0, $"{response.StatusCode}-{response.StatusDescription}"));
            }
        }