using Newtonsoft.Json.Linq; using System.Net.Http; using System.Windows; using System.Windows.Media.Imaging; using Zerolauncher.Manager; namespace Zerolauncher.dialog { /// /// RegDialog.xaml 的交互逻辑 /// public partial class RegDialog : Window { private HttpClient client; private string user; private string password; public RegDialog(String acc, String pwd) { user = acc; password = pwd; InitializeComponent(); client = new(); FleshPic(null, null); } private async void FleshPic(object _, RoutedEventArgs e) { var main_ip = UpDateData.game_url; HttpResponseMessage? response = null; try { response = await client.GetAsync($"http://{main_ip}/module/captcha.php"); if (response != null) { foreach (var item in response.Headers) Console.WriteLine($"{item.Key}"); } //var bin = response.Content.ReadAsStream(); //verify = ocr.RunInference(new Bitmap(bin)); //using (var fileStream = File.Create("tmp.png")) //{ // bin.Seek(0, SeekOrigin.Begin);//设置复制开始的地方 // bin.CopyTo(fileStream); //} using (var stream = response.Content.ReadAsStream()) { BitmapImage bitmap = new BitmapImage(); bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = stream; bitmap.EndInit(); bitmap.Freeze(); // 为了线程安全 CapPic.Source = bitmap; // 设置Image控件的Source } } catch (Exception ex) { Console.WriteLine($" 网络发生错误,类型:{ex.GetType().Name},消息:{ex.Message}"); } } private async void okButton_Click(object _, RoutedEventArgs e) { var main_ip = UpDateData.game_url; var values = new Dictionary { { "rUsername", user }, { "rPassword", password }, { "rPasswords", password }, { "rEmail", bottomMarginTextBox.Text }, { "rCode", rightMarginTextBox.Text } }; var content = new FormUrlEncodedContent(values); try { var response = await client.PostAsync($"http://{main_ip}/form/register.php", content); var src = await response.Content.ReadAsStringAsync(); var jsonObj = JObject.Parse(src); MessageBox.Show(jsonObj["content"].ToString(), jsonObj["title"].ToString()); if(int.Parse(jsonObj["type"].ToString()) == 0) Close(); } catch (Exception ex) { MessageBox.Show($"类型:{ex.GetType().Name},消息:{ex.Message}", "发生错误喵"); } } private void cancelButton_Click(object sender, RoutedEventArgs e) { Close(); } } }