如何使用Apache HttpComponents HttpClient设置'Referer' HTTP头

4
我使用php curl从我的API服务器请求数据,现在我想开发一个JSP从同一个API服务器请求数据。
问题出在当我的API服务器需要http referer来检查请求是否来自有效的url时。
我的原始PHP代码如下:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/2');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.example.com/1');
$html = curl_exec($ch);

然后我的API服务器获取引用URL:

var_dump($_SERVER['HTTP_REFERER'])

我该如何使用Apache HttpComponents HttpClient设置Referer头部?


你是在问“我如何使用Java HTTP库设置HTTP Referer头?”吗? - Greg Kopff
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - kreamik
你使用哪个Java HTTP客户端库? - Greg Kopff
我使用Apache HttpComponents HttpClient。 - kreamik
1个回答

4
HttpGet request = new HttpGet("http://www.example.com/2")

request.addHeader("Referer", "http://www.example.com/1")

HttpResponse response = HttpClientBuilder.create().build().execute(request)

你可以通过使用AbstractHttpMessageaddHeader方法来设置头信息

1
我认为在传输过程中的头部应该被称为“Referer”,而不是“HTTP_REFERER”。 - Greg Kopff
@GregKopff 是的,谢谢。 - chengpohi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接