【问题标题】:How to query string to a web site using get method?如何使用 get 方法向网站查询字符串?
【发布时间】:2014-11-18 22:03:00
【问题描述】:

我想将信息与 url 一起发送到网站,例如查询字符串。这正是我所说的

Process.Start("http://domain.com?value=anything");

但我不想打开浏览器,因为不想打扰正在使用该软件的用户。

我已经用谷歌搜索过了,但我找到了一些 HttpRequest 代码,但问题是这些程序没有附加查询字符串。他们只是将网页的 html 文本返回给我。

我想检索该信息以存储在数据库中。请在这种情况下指导我。

【问题讨论】:

    标签: c# httprequest getmethod


    【解决方案1】:

    使用WebClient.DownloadString从特定的url获取页面,不使用浏览器:

    var x = WebClient.DownloadString("http://domain.com?value=anything");
    

    【讨论】:

    • 我的问题有些不同。我想在 web url 中附加我的查询字符串,以便在我的 web 应用程序中检索信息。
    • 在你的评论中说 sn-p 正在检索信息。但我想在查询字符串中附加我的信息。所以在网站上我可以将该信息存储在数据库中。
    • 所以你的问题是:如何创建查询字符串?
    • 是的。在这种情况下你能帮我吗?
    • 查询字符串只是参数(尽管您可以为它们提供 POST)。我从来没有读过他想要一个帖子。
    【解决方案2】:

    这是我用来执行 GET 的东西:

    public T Get<T>(string url, IEnumerable<KeyValuePair<string, string>> data)
    {
        var webApiUri = ConfigurationManager.AppSettings["WebApiUri"];
    
        var client = new HttpClient();
    
        try
        {
            string queryString = string.Empty;
    
            if (data != null)
            {
                queryString = data.Distinct().Select(x => string.Format("{0}={1}", x.Key, x.Value)).ToDelimitedString("&");
            }
    
            var response = client.GetAsync(string.Format("{0}/{1}?{2}", webApiUri, url, queryString)).Result;
            var responseContent = response.Content.ReadAsStringAsync().Result;
            return JsonConvert.DeserializeObject<T>(responseContent);
        }
        catch (Exception ex)
        {
            Debug.Assert(false, ex.Message);
            throw;
        }
    }
    

    T 是方法的返回类型。响应应为 JSON,但您不必担心该部分。这就是client 执行您感兴趣的 GET 请求的方式。这只是基于 JSON 结果的示例。

    【讨论】:

    • 查看编辑。它只是一个示例,说明如何使用一些信息对网站执行 GET 请求。我正在努力帮助 OP,这就是我理解他要问的问题。
    猜你喜欢
    • 2015-12-03
    • 1970-01-01
    • 2018-07-28
    • 2014-08-09
    • 2021-01-05
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    相关资源
    最近更新 更多