(获取http请求)如何在服务器中发送cookie

吹约翰

我正在尝试将Cookie发送到服务器,但是它不起作用。请告诉我那是错误的。这是我的代码。首先,我在POST请求中使用cookie。

> Map <String, List<String>> headerFields = postRequest.getHeaderFields();
> List<String> cookiesHeader = headerFields.get("Set-Cookie");

稍后,在GET请求中,我将cookie发送到服务器。

getRequest.setRequestProperty("Cookie", cookiesHeader.toString());

帮我。我是新手,不是严格判断。

这是我的所有代码。

@Override
    protected String doInBackground(Void... params) {
        Log.i(TAG, "doInBackground");
        String store_id = "";
        final String COOKIES_HEADER = "Set-Cookie";
        final String COOKIE = "Cookie";
                try {
            Thread.sleep(4000);
                    Log.i(TAG, "httpRequest start");
                    String parametrs = mPhone.getText().toString();
                    String parametrs2 = mPass.getText().toString();
                    JSONObject allParams = new JSONObject();
                    HttpURLConnection postRequest = null;
                    InputStream inputStream = null;
                    byte[] data = null;

                try {
                    URL serverUrl = new URL("https://api.fianitlombard.ru/mobile/auth");
                    postRequest = (HttpURLConnection) serverUrl.openConnection();
                    postRequest.setReadTimeout(10000 /* milliseconds */);
                    postRequest.setConnectTimeout(15000 /* milliseconds */);
                    postRequest.setRequestMethod("POST");
                    postRequest.setDoInput(true);
                    postRequest.setDoOutput(true);
                    postRequest.setRequestProperty("Content-Type", "application/json; charset=utf-8");
                    postRequest.connect();

                allParams.put("phone", parametrs);
                allParams.put("password", parametrs2);
                Log.i(TAG, "allParams" + allParams);

                OutputStream bos = (postRequest.getOutputStream());
                bos.write(allParams.toString().getBytes());

                String helpInfo = postRequest.getResponseMessage();
                Log.i(TAG, "helpInfo =" + helpInfo);

                responseCode = postRequest.getResponseCode();
                ByteArrayOutputStream baos = new ByteArrayOutputStream();

                Map<String, List<String>> headerFields = postRequest.getHeaderFields();
                List<String> cookiesHeader = headerFields.get(COOKIES_HEADER);

                    if (responseCode == 200) {
                        inputStream = postRequest.getInputStream();
                        byte[] buffer = new byte[8192]; // Такого вот размера буфер
                        // Далее, например, вот так читаем ответ
                        int bytesRead;
                        while ((bytesRead = inputStream.read(buffer)) != -1) {
                            baos.write(buffer, 0, bytesRead);
                        }
                        data = baos.toByteArray();
                        resultString = new String(data, "UTF-8");
                        Log.i(TAG, "responseCode = " + responseCode);
                        Log.i(TAG, "resultCode = " + resultString);

                        JSONObject jsonObject = new JSONObject(resultString);
                        store_id = jsonObject.getString("store_id");
                        Log.i(TAG, "store_id =" + store_id);
                        bos.close();
                        baos.close();
                        postRequest.disconnect();


                    }
                    if (responseCode == 403) {
                        Log.i(TAG, "responseCode = " + responseCode);
                    }

                    HttpURLConnection getRequest = null;
                    try {
                        URL serverUrl1 = new URL("https://api.fianitlombard.ru/mobile/checksession?version=1.0.8");
                        URI uri = URI.create("https://api.fianitlombard.ru/mobile/checksession?version=1.0.8");
                        getRequest = (HttpURLConnection) serverUrl1.openConnection();
                        getRequest.setReadTimeout(20000 /* milliseconds */);
                        getRequest.setConnectTimeout(25000 /* milliseconds */);
                        getRequest.setRequestMethod("GET");
                        getRequest.setRequestProperty("Content-Type", "application/json; charset=utf-8");
                        getRequest.setRequestProperty(COOKIE, cookiesHeader.toString());


                Log.i(TAG, "Cookie = " + cookiesHeader.toString());
                getRequest.connect();

                int responceGetCode = getRequest.getResponseCode();
                String responceGetInfo = getRequest.getResponseMessage();
                Log.i(TAG, "responceGetCode = " + responceGetCode);
                Log.i(TAG, "responceGetInfo = " + responceGetInfo);

                    if (responceGetCode == 200) {
                        //Все хорошо
                    }
                    if (responceGetCode == 400) {
                        // Устарела версия, нужно обновление
                    }
                    if (responceGetCode == 403) {
                        //Проблемы с авторизацией
                    } else {
                        //Что то другое.
                    }

                    } catch (IOException e) {
                    e.printStackTrace();

                    } finally {

                        if (getRequest != null)
                        getRequest.disconnect();
                    }

                    } catch (IOException e1) {
                e1.printStackTrace();
                         }
                    if (postRequest != null) {
                postRequest.disconnect();
                    }
                Log.i(TAG, "httpRequest end");

                    }
                     catch (InterruptedException | JSONException e) {
                     e.printStackTrace();
                    }

                     return store_id;
                    }
拉维·马卡(Ravi MCA)

在行下更改

getRequest.setRequestProperty(COOKIE, cookiesHeader.toString());

getRequest.setRequestProperty( COOKIE, cookiesHeader.get( 0 ) );

List的toString()方法将返回hashCode(),但不返回List的实际值

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何相信在后续请求中发送回服务器的cookie尚未过期?

来自分类Dev

如何相信在后续请求中发送回服务器的cookie尚未过期?

来自分类Dev

如何在服务器发送的reactjs中获取JWT cookie

来自分类Dev

如何在android中使用HttpUrlConection发送请求以从服务器获取特定数据?

来自分类Dev

如何发送JSON格式的HTTP请求到服务器?

来自分类Dev

如何向服务器发送请求并获取数据

来自分类Dev

如何在SSH中发送HTTP请求?

来自分类Dev

Chrome 扩展:向 node.js 服务器发出 http 请求,发送 cookie 凭据(CORS)

来自分类Dev

如何在Apache服务器上启用Http请求?

来自分类Dev

在多线程HTTP服务器中发送后,如何干净地关闭套接字?

来自分类Dev

如何强制服务器在一个http请求中发送所有导入的ES6模块

来自分类Dev

服务器如何在android中发送其组播地址和端口号?

来自分类Dev

如何在Siebel服务器脚本中发送长电子邮件?

来自分类Dev

服务器如何处理发送两个不同cookie的连续请求?

来自分类Dev

如何在客户端渲染的React应用中发出服务器端请求?

来自分类Dev

如何在通过 Beanshell 预处理器在 JMeter 中发送之前修改 HTTP 请求?

来自分类Dev

如何在 Python 中发出请求之前获取 cookie

来自分类Dev

如何在Xamarin中发送HTTP POST请求?

来自分类Dev

如何在http请求中发送JSON数据?

来自分类Dev

如何在Angular JS的HTTP请求中发送头数据

来自分类Dev

如何在HTTP请求正文中发送'&'字符?

来自分类Dev

如何在HTTP请求中发送Java对象?

来自分类Dev

如何在代理下的节点js中发送HTTP请求

来自分类Dev

如何在 Visual C# 中发送 HTTP 2.0 请求

来自分类Dev

如何在python中发送这个http请求?

来自分类Dev

如何在nightwatch.js中发送Ajax获取请求

来自分类Dev

如何在获取请求的节点js中发送多个参数?

来自分类Dev

ajax请求一次从服务器20获取图像,如何在没有图像的情况下停止发送请求?

来自分类Dev

通过SSH服务器发送HTTP请求

Related 相关文章

  1. 1

    如何相信在后续请求中发送回服务器的cookie尚未过期?

  2. 2

    如何相信在后续请求中发送回服务器的cookie尚未过期?

  3. 3

    如何在服务器发送的reactjs中获取JWT cookie

  4. 4

    如何在android中使用HttpUrlConection发送请求以从服务器获取特定数据?

  5. 5

    如何发送JSON格式的HTTP请求到服务器?

  6. 6

    如何向服务器发送请求并获取数据

  7. 7

    如何在SSH中发送HTTP请求?

  8. 8

    Chrome 扩展:向 node.js 服务器发出 http 请求,发送 cookie 凭据(CORS)

  9. 9

    如何在Apache服务器上启用Http请求?

  10. 10

    在多线程HTTP服务器中发送后,如何干净地关闭套接字?

  11. 11

    如何强制服务器在一个http请求中发送所有导入的ES6模块

  12. 12

    服务器如何在android中发送其组播地址和端口号?

  13. 13

    如何在Siebel服务器脚本中发送长电子邮件?

  14. 14

    服务器如何处理发送两个不同cookie的连续请求?

  15. 15

    如何在客户端渲染的React应用中发出服务器端请求?

  16. 16

    如何在通过 Beanshell 预处理器在 JMeter 中发送之前修改 HTTP 请求?

  17. 17

    如何在 Python 中发出请求之前获取 cookie

  18. 18

    如何在Xamarin中发送HTTP POST请求?

  19. 19

    如何在http请求中发送JSON数据?

  20. 20

    如何在Angular JS的HTTP请求中发送头数据

  21. 21

    如何在HTTP请求正文中发送'&'字符?

  22. 22

    如何在HTTP请求中发送Java对象?

  23. 23

    如何在代理下的节点js中发送HTTP请求

  24. 24

    如何在 Visual C# 中发送 HTTP 2.0 请求

  25. 25

    如何在python中发送这个http请求?

  26. 26

    如何在nightwatch.js中发送Ajax获取请求

  27. 27

    如何在获取请求的节点js中发送多个参数?

  28. 28

    ajax请求一次从服务器20获取图像,如何在没有图像的情况下停止发送请求?

  29. 29

    通过SSH服务器发送HTTP请求

热门标签

归档