HttpWebRequest 无法提交 cookie 的原因分析
症状
1, 使用 C# 向接口提交请求 , 但是接口无法获取到 cookie
C# 提交代码如下:
string url = "http://localhost:8081/club/proxy";
HttpWebRequest uploadRequest = (HttpWebRequest)System.Net.WebRequest.Create(url);
uploadRequest.CookieContainer = new CookieContainer();
var myCookie = new Cookie("aaa", "bbbb", "/", "myonlineaaaaaabb.com.cn");
uploadRequest.CookieContainer.Add(ck);
接口端 java 代码
@RequestMapping(value = "/{appName}/proxy/**")
public void proxy(HttpServletRequest request, HttpServletResponse response, @PathVariable(value = "appName", required = true) String appName) throws IOException, URISyntaxException {
Cookie[] cookies = request.getCookies();
分析
wireshark 抓包,的确没有发送 , 问题是出在 C# 提交一端。
翻代码
原来在 CookieContainer.Add 的过程中就先验证了 cookie的 domain 与 url 的一致性