【问题标题】:HTTP requests and Cookies (HTTP Client) - How do I manipulate them in a desktop app?HTTP 请求和 Cookie(HTTP 客户端) - 如何在桌面应用程序中操作它们?
【发布时间】:2013-05-26 03:32:52
【问题描述】:

我刚开始学习 C# 和 Asp.Net,我有一个特定的项目,但我需要能够在客户端操作 cookie,我找不到很好的文档,所以我决定寻求帮助得到一个起点。 我想制作一个就我的实际知识而言有点复杂的桌面应用程序,但我需要一个起点:我需要能够加载用户名和密码以及代理以及代理用户和代理通行证的列表。应用程序的这个小部分将使用帐户和代理通过 httpclient 登录到网页。当我向登录页面发送一个 GET 请求时,我得到一个包含一些隐藏参数的响应,我必须将这些参数分配给一些变量和一个 cookie。我不知道如何使用我选择的名称(用于登录的用户名应该是该 cookie 的名称)将该 cookie 保存在我选择的位置(“cookies”文件夹下的应用程序文件夹)。在我对响应进行排序后,我必须向服务器发送一个带有所有隐藏参数和用户的 POST 请求,并传递参数和 cookie。服务器将发送回一个响应,其中包含我想保存在与第一个具有相同名称(覆盖)的第一个 cookie 相同的位置的另一个 cookie。该 cookie 稍后将在程序中用于在该登录名下对该服务器执行其他操作。所有这些请求都必须使用具有其凭据的某个代理,每次我使用新登录时代理都会更改。 我设法找到了如何使用来自 Asp.Net Web API 的 HTTP 客户端来发送 get req 或发布,但我不知道如何控制网站想要存储在我的计算机上的 cookie 以及如何为每次登录使用不同的私有代理...我使用 PHP 和 CURL 完成了上述所有操作,并且使用 cURL 很容易控制 cookie,但我需要在 C# 中执行此操作并制作桌面应用程序... Asp.Net Web API 和 HTTP 客户端是我认为的关键...... 请帮我开始我的项目,不要仅仅因为我对 .net 或 c# 不熟悉就拒绝我的问题 :) 谢谢!

【问题讨论】:

    标签: asp.net c#-4.0 cookies asp.net-web-api httpclient


    【解决方案1】:

    获取这个库http://nuget.org/packages/Microsoft.Net.Http/

    创建一个 HttpClientHandler 的实例。它有一个 CookieContainer 属性。你可以在那里设置所有你想要的cookies。

    创建一个 HttpClient 实例,将 HttpClientHandler 实例传递给构造函数。

    您使用 HttpClient 发出的所有 HTTP 请求现在都将附加 cookie。

    【讨论】:

    • 我记得在 MSDN 上阅读过 cookie 存储在 Internet Explorer 存储 cookie 的同一位置,但我希望能够将 cookie 存储在我在程序中选择的文件夹中(硬编码,不是用户的选择)。另外,我如何使用私有代理来发送和接收请求和响应? (不是 Internet Explorer 使用的代理,而是我的应用程序将加载的代理)
    • @Florin 可以直接设置 Cookie 头,自己管理。您可以从 DelegatingHandler 派生以充当一种进程内代理。不确定您到底要做什么。
    • 我尝试制作一个应用程序,(作为第一步)将使用私有代理列表(带有用户和密码)和帐户列表(用户名和密码)通过以下方式登录到 youtube一个(并在他们登录后在 youtube 上做其他事情)。为此,我需要能够控制 cookie,否则谷歌会知道这是一个在他们的网站上执行自动化操作的软件,而不是一个真实的人。所以一个帐户的所有操作都应该在一个代理下,然后我需要在使用另一个帐户时更改代理等等。
    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2017-07-10
    • 2012-09-15
    • 2011-12-13
    • 2017-10-30
    • 2021-05-07
    • 1970-01-01
    • 2016-10-04
    相关资源
    最近更新 更多