我如何使用OkHttp收到服务器响应发送的cookie?

时间:2018-01-17 21:05:43

标签: java http cookies postman okhttp

我还有另一个用于登录。所以我就是这样看的,每次尝试运行此代码时,都会要求我进行身份验证。

所以这就是它的工作原理我想,我基本上必须首先运行登录代码,存储由服务器响应发送的cookie,并将其用于后续操作,例如在服务器数据库中进行更改。 我可以通过邮递员进行这些更改。

那么我如何收到服务器响应发送的cookie?

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=----
WebKitFormBoundary7MA4YWxkTrZu0gW");
RequestBody body = RequestBody.create(mediaType, "------
WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; 
name=\"username\"\r\n\r\nadmin\r\n------
WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; 
name=\"password\"\r\n\r\nadmin\r\n------
WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; 
name=\"this_is_the_login_form\"\r\n\r\n1\r\n------
WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; 
name=\"post_data\"\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--");
Request request = new Request.Builder()
  .url("http://localhost:8081/iclock/accounts/login/?
next=/iclock/data/iclock/")
  .post(body)
  .addHeader("content-type", "multipart/form-data; boundary=----
WebKitFormBoundary7MA4YWxkTrZu0gW")
  .addHeader("Cache-Control", "no-cache")
  .addHeader("Postman-Token", "86439550-93f7-6d60-1aab-7d289c137b0d")
  .build();

Response response = client.newCall(request).execute();

1 个答案:

答案 0 :(得分:2)

response.headers(“ Set-Cookie”)返回服务器以字符串格式发送的cookie。 请参阅this,以获取与OkHttp中的Response类有关的更多信息。