【问题标题】:Simple Post and Get C# WPF简单发布并获取 C# WPF
【发布时间】:2020-08-08 12:01:46
【问题描述】:

我有两个文本框和一个按钮。我想在 textBox1 中放一些东西,然后将其发送到服务器,然后将我得到的结果放回 textBox2。

我似乎无法很好地理解套接字来完成这个。我有一个地址和一个端口。

有没有人有一个超级简单的设置来做到这一点?我发现的所有内容都包括我什至找不到命名空间的类。

谢谢!

【问题讨论】:

    标签: c# sockets


    【解决方案1】:

    这是从网站获取数据的简单解决方案:

    private static HttpClient _client = new HttpClient();
    public static async Task<string> GetWebsiteDataAsync(Uri fromUri)
    {
        using (var msg = new HttpRequestMessage(HttpMethod.Get, fromUri))
        using (var resp = await _client.SendAsync(msg))
        {
            resp.EnsureSuccessStatusCode();
            return await resp.Content.ReadAsStringAsync();
        }
    }
    

    你可以这样称呼它:

    var websiteData = await GetWebsiteDataAsync(new Uri("https://example.com"));
    

    你的标题也要求发布,所以这是你的做法(需要Newtonsoft.Json nuget 包):

    public static async Task<TResult> PostObjectToWebsiteAsync<TResult>(
        Uri site, object objToPost)
    {
        using (var req = new HttpRequestMessage(HttpMethod.Post, site))
        {
            req.Content = new StringContent(JsonConvert.SerializeObject(objToPost),
                Encoding.UTF8, "application/json");
            using (var resp = await _client.SendAsync(req))
            {
                resp.EnsureSuccessStatusCode();
    
                using (var s = await resp.Content.ReadAsStreamAsync())
                using (var sr = new StreamReader(s))
                using (var jtr = new JsonTextReader(sr))
                {
                    return new JsonSerializer().Deserialize<TResult>(jtr);
                }
            }
        }
    }
    

    你可以这样称呼它:

    var objToPost = new
    {
        hello = "world",
        value = 5
    }
    
    var postResonse = await PostObjectToWebsiteAsync<object>(
        new Uri("https://example.com"), objToPost);
    

    【讨论】:

      猜你喜欢
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2019-05-28
      • 2012-04-30
      • 2015-01-21
      • 1970-01-01
      相关资源
      最近更新 更多