发出HTTP请求并使用Cookie

时间:2020-05-26 16:42:18

标签: java android http cookies

我正在开发一个可帮助我登录网站并查看所需数据的应用程序。尽管我可以毫无疑问地解析这些数据并正确使用它们,但在登录网站时确实遇到了问题。我尝试发送POST请求,但是由于某些原因并没有真正起作用,因此我开始更仔细地研究如何在浏览器中发送对该网站的POST请求,这就是我得到的: Picture

我还问了一个开发该网站的人,他说我应该使用两个带有“ ulogin”和“ upassword”的cookie进行登录。我尝试使用JSOUP,如下所示:https://jsoup.org/cookbook/input/load-document-from-url

我使用了.cookies(“ upassword”,“ 10101010”),但是它没有用,所以让我觉得它不仅仅是在发帖后写一条简单的代码而已。

请,有人可以向我解释我如何使用Cookie登录网站,或者至少将我的学习方向指向我,因为我已经非常接近实现该应用程序了,我将能够继续进一步发展,但这只是我真正坚持的这一步。

这是Firefox中带有响应和请求标头的其他图片。 Picture

1 个答案:

答案 0 :(得分:0)

我设法使它工作了很长时间,但没有发布答案。所以,我们开始。

Cookie只是简单的Header,因此您应将其视为此类。以我为例,使用HttpURLConnection,下面是一段工作代码:

注意:我最初的请求是Java,但是,此后我转移到Kotlin,因此此解决方案使用Kotlin,并且此功能是“挂起”功能,这意味着它设计用于Kotlin Couroutines。 >

suspend fun httpRequest(): String {
        val conn: HttpURLConnection = url_profile.openConnection() as HttpURLConnection
        conn.requestMethod = "POST"
        conn.doOutput = true
        conn.doInput = true
        conn.setRequestProperty(
            "Cookie",
            "YOUR COOKIE DATA"
        )
        val input: BufferedReader = BufferedReader(InputStreamReader(conn.inputStream))
        return input.readText()
    }