我搜索了其他主题并且有一些答案,但我没有成功解决我的问题。 我有这个代码,我想在我的http标题中添加“Referer”。 使用setRequestProperty方法后,我在Logcat中记录结果,但我没有在输出中看到referer。我做错了什么?
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Referer", "http://www.example.com");
for(int i=0;con.getHeaderFieldKey(i)!=null;i++){
String headerName = con.getHeaderFieldKey(i);
String headerValue = con.getHeaderField(i);
Log.d("Header", headerName + ": " + headerValue);
}
我还有另一个代码无效:
URL url = new URL(uri);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
String IRNIC = cookies.get("IRNIC");
String ROUTEID = cookies.get("ROUTEID");
String myCookies = "IRNIC="+IRNIC+"; ROUTEID="+ROUTEID;
con.setRequestProperty("Cookie", myCookies);
for(int i=0;con.getHeaderFieldKey(i)!=null;i++){
String headerName = con.getHeaderFieldKey(i);
String headerValue = con.getHeaderField(i);
Log.d("Header", headerName + ": " + headerValue);
}
对于第一个代码,我没有看到输出中的referer以及第二个代码,我也看不到cookie。 所以似乎setRequestProperty不起作用! 提前谢谢。
编辑:我可以看到输出中的标题,但不是我通过setRequestProperty方法添加的标题。所以if代码正常工作。
答案 0 :(得分:0)
来自docs:
<强> getHeaderFields 强>
返回响应 - 标题字段和值的不可修改的地图
<强>调用setRequestProperty 强>
设置指定的请求标头字段的值。
请求与响应不同。这就是你的标题不同的原因。该请求将使用setRequestProperty