如何更改HTTP请求以模仿从美国发送?

时间:2017-03-27 17:24:18

标签: java cookies http-headers

我正在Java应用程序重复使用Apache HTTP Components的airbnb请求,而不在美国境外。在Chrome和Mozilla中,我在本地货币的Java应用程序中获得了美元的价格。此外,我在Safari中获得了以前未用于airbnb的当地货币价格。那么,区别在于cookie,对吗?

但是,当我在Chrome中看到Cookie时,我看不到负责定位的Cookie。有一个45个cookie的列表,我应该添加到HTTP请求吗?有没有其他方法可以用美元来获得价格?

此45个Cookie列表中没有货币,我仍尝试添加货币

      BasicCookieStore cookieStore = new BasicCookieStore();
      BasicClientCookie cookie = new BasicClientCookie("currency", "USD");
      cookie.setDomain(".airbnb.com");
      cookie.setPath("/");
      cookieStore.addCookie(cookie);

      HttpClient client = HttpClientBuilder.create().setDefaultCookieStore(cookieStore).build();

这没有帮助。是否可以从Chrome Cookie目录添加Cookie?

2 个答案:

答案 0 :(得分:1)

你是对的,它是Cookies。你错了,它不是位置。可以看到货币标题: enter image description here

这也是在GET方法中设置的方式:

enter image description here

答案 1 :(得分:0)

通常,浏览器的语言在HTTP请求标头中显示为accept-language。据我所知,没有cookie表明请求的来源国家或所有浏览器和所有HTTP请求中的货币 (我认为Chrome有一个,但它不可靠)。

如果此标头密钥不存在,或者您可以检查请求标头中的http-accept-language(这取决于您使用的解析器)。

enter image description here