// Base64 public static string Base64Encode(string inputString) { return Convert.ToBase64String(Encoding.UTF8.GetBytes(inputString)); }
// Base64 public static string Base64Decode(string inputString) { return Encoding.UTF8.GetString(Convert.FromBase64String(inputString)); }
public static Dictionary<string, string> Response(string handlerString, string inputString = "") { try { // var requestString = (inputString.Length > 0) ? "handler=" + handlerString + "&args=" + Base64Encode(inputString) : "handler=" + handlerString; // HttpWebRequest. , - , . // * Properties.Settings.Default , , , IMHO. , . // Properties.Settings.Default.handlerUri = (string) "http://__/handler.php" var request = (HttpWebRequest) WebRequest.Create(Properties.Settings.Default.handlerUri); // Properties.Settings.Default.httpMethod = (string) "POST" request.Method = Properties.Settings.Default.httpMethod; request.Credentials = CredentialCache.DefaultCredentials; var encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(requestString); // Properties.Settings.Default.httpContentType = (string) "application/x-www-form-urlencoded" request.ContentType = Properties.Settings.Default.httpContentType; request.ContentLength = bytes.Length; using (var newStream = request.GetRequestStream()) { newStream.Write(bytes, 0, bytes.Length); newStream.Close(); } var response = (HttpWebResponse) request.GetResponse(); var streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); var responseString = streamReader.ReadToEnd().Trim(); // JSON-, Base-64 . ... , .Trim('"'). , . return JsonConvert.DeserializeObject<Dictionary<string, string>>( Base64Decode(responseString.Trim('"'))); } catch (Exception exception) { // , - . // Properties.Settings.Default.errorMessageServerHandlerBug = (string) ", . .". // Properties.Settings.Default.msgboxCaptionError = (string) "". MessageBox.Show( Properties.Settings.Default.errorMessageServerHandlerBug + Convert.ToChar("\n") + exception.Message, Properties.Settings.Default.msgboxCaptionError, MessageBoxButtons.OK, MessageBoxIcon.Error); // , - , .. . Application.Exit(); // , VS return', . , , :) return JsonConvert.DeserializeObject<Dictionary<string, string>>("{\"type\":\"error\",\"data\":\"-1\"}"); } }
define("DB_HOST", "localhost"); define("DB_USER", "__"); define("DB_PASS", "__"); define("DB_NAME", "___"); define("DB_CHARSET", "utf8"); define("ANSWER_SUCCESS", "success"); define("ANSWER_ERROR", "error"); function make_answer($type, $data) { print base64_encode(json_encode([ "type" => $type, "data" => $data ])); exit();// . } $db = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASS); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->exec("SET NAMES '".DB_CHARSET."'"); $query = $db->query("SELECT `Id`,`Title`,`PhoneNumber`,`Email`,`Messengers` FROM `contacts` WHERE 1"); $query->execute(); $query->setFetchMode(PDO::FETCH_ASSOC); $result = []; while ($current = $query->fetch()) { $result[] = [ "Id" => base64_encode($current["Id"]), "Title" => base64_encode($current["Title"]), "PhoneNumber" => base64_encode($current["PhoneNumber"]), "Email" => base64_encode($current["Email"]), "Messengers" => base64_encode($current["Messengers"]) ]; } if (count($result) > 0) { make_answer(ANSWER_SUCCESS, $result); } make_answer(ANSWER_ERROR, " ");
private void FormContacts_Load(object sender, EventArgs e) { LoadContactsTable(); }
public class ContactsList { public string Id { get; set; } public string Title { get; set; } public string PhoneNumber { get; set; } public string Email { get; set; } public string Messengers { get; set; } }
// , , - . . public void LoadContactsTable(string args = "") { // , .. // , - . dataTableContactsView.Clear(); // var contactsResponse = Response("getContactsTable", args); // , - if (contactsResponse["type"].Trim() == "success") { // ContactsList, var contactsJsonList = (List<ContactsList>) JsonConvert.DeserializeObject(contactsResponse["data"].Trim(), typeof (List<ContactsList>)); foreach (var key in contactsJsonList) { // var row = dataTableContactsView.NewRow(); row[0] = Base64Decode(key.Id); row[1] = Base64Decode(key.Title); row[2] = Base64Decode(key.PhoneNumber); row[3] = Base64Decode(key.Email); row[4] = Base64Decode(key.Messengers); dataTableContactsView.Rows.Add(row); } } // , , else { MessageBox.Show(contactsResponse["data"].Trim(), @"", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Source: https://habr.com/ru/post/236029/
All Articles