相关疑难解决方法(0)

如何使用cookieManager在httpUrlConnection中处理cookie

我有一个返回多个cookie的服务器请求,如下所示:

在此输入图像描述

这就是我将这些cookie存储到cookieManager的方式:

HttpURLConnection connection = ... ;
static java.net.CookieManager msCookieManager = new java.net.CookieManager();
msCookieManager.put(COOKIES_URI, connection.getHeaderFields());
Run Code Online (Sandbox Code Playgroud)

这就是我将这些cookie添加到下一个连接的方式:

connection.setRequestProperty("Cookie", 
  msCookieManager.getCookieStore().get(COOKIES_URI).toString());
Run Code Online (Sandbox Code Playgroud)

它是从cookieManager获取cookie的正确方法吗?我很确定有一个更好的...

cookies android httpurlconnection android-cookiemanager

36
推荐指数
2
解决办法
8万
查看次数

使用Java URLConnection进行Cookie管理

我对Android编程很新,最近获得了成功的HTTP Post请求,只是为了了解我的cookie没有存储在后续的Post/Get请求之间.我浏览了一下interweb,并找到了Android的Apache客户端和Java的HttpURLConnection的几个例子.我没有成功地将这两种方法应用到我当前的课程中,所以我想知道有经验的人是否可以查看我的代码并提供建议.

概括:

  1. 我的初始POST请求成功并经过身份验证.
  2. 我的第二个POST请求不保留初始POST请求中的cookie.
  3. 是否有人为可能选择Apache方法或Java实现的具体实例或原因?两者都是平等的,还是一个提供比另一个更多的能力和灵活性?

感谢任何帮助,谢谢.

webCreate.java

import android.util.Log;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpCookie;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

public class webCreate {

    private final String USER_AGENT = "Mozilla/5.0";


    // HTTP GET request
    public void sendGet(String url) throws Exception {

        CookieManager cookieManager = new CookieManager();
        CookieHandler.setDefault(cookieManager);
        HttpCookie cookie = new HttpCookie("lang", "en");


        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // optional default is GET
        con.setRequestMethod("GET");

        //add request header …
Run Code Online (Sandbox Code Playgroud)

java cookies android http-post httpurlconnection

1
推荐指数
1
解决办法
3057
查看次数