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}")); } }