HttpURLConnection在没有有效负载的情况下在post调用时返回400状态

时间:2018-04-04 09:35:55

标签: java httpurlconnection bufferedreader spring-jdbc dataoutputstream

实际上有两个POST URL。第一个POST url登录如下,甚至包含body作为json,如下所示。

String loginUrl = "http://00.00.00.00:0000/url/vs1/login";
json = `{"email": "qqqq@mail.com", "password": "/JGgdwd6vhsvJJFGDF7ttd="}`

没有有效负载的第二个POST网址如下。

String SiteLoginUrl = "http://00.00.00.00:0000/url/vs1/site/1/login";

首先,首先需要登录首个网址才能登录到第二个网址。 因此,第一个URL已成功登录,但在获得响应后,我需要登录第二个URL,该URL不包含有效负载或json。因此,在使用 POST 调用第二个网址后,返回 400错误。对于第二个URL,我在下面编写了代码。

// java HttpURLConnection for POST without json or payload data     
        String SiteLoginUrl = "http://00.00.00.00:0000/url/vs1/site/1/login";
        HttpURLConnection conn = (HttpURLConnection) new URL(SiteLoginUrl).openConnection();
        conn.setDoOutput(true); 
        conn.setUseCaches(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("ContentType","application/json;charset=UTF-8");
        conn.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
        JSONObject obj = new JSONObject();
        wr.writeBytes(obj.toString()); //String Empty Object
        wr.flush();
        wr.close();

        if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();         
            return 1;
        } else {
            return 0;
        }

在POSTMAN中我用文本{}(字符串空对象)有效负载检查它是否正常工作(返回成功的登录响应)。

0 个答案:

没有答案