阻止ClosableHttpClient发送cookie

时间:2018-01-05 06:26:54

标签: java cookies http-headers shopify apache-httpclient-4.x

我正在尝试用Java编写Shopify API的私有应用程序。我正在使用org.apache.http库来编写我的请求。以下是我目前的要求:

    CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build()).build();
    HttpPut putRequest = new HttpPut(request);
    StringEntity params;

    try {
        params = new StringEntity(json);
        putRequest.addHeader("X-Shopify-Access-Token", Constants.getShopifySharedSecret());
        putRequest.setEntity(params);

        CloseableHttpResponse response = httpClient.execute(putRequest);
        HttpEntity entity = response.getEntity();

        System.out.println("Title Change Request Output: ");
        System.out.println(EntityUtils.toString(entity));

        response.close();
        httpClient.close();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return;

这将返回一个要求登录的HTML页面。在搜索Shopify论坛后,似乎在向Shopify发出POST或PUT请求时,您不允许发送任何cookie,否则返回登录页面。所以我的问题是,有没有办法确保CloseableHttpClient不会发送任何cookie?

2 个答案:

答案 0 :(得分:0)

您可以将自定义Cookie存储绑定到本地HTTP上下文并在请求中发送

{{1}}

答案 1 :(得分:0)

阻止HttpClient向目标主机发送cookie的一种方法是禁用烹饪管理

CloseableHttpClient client = HttpClientBuilder.create()
        .disableCookieManagement()
        .build();