Получение статуса HTTP 400 в API 23 и ниже

Я должен вызвать один Rest API GET-запроса.

Когда я использовал эмулятор API 24, он работал нормально. но тот же код на моем телефоне, то есть API 23 и API 18, он дает 400 статус, т.е. плохой запрос.

 URL url = new URL(voids[0]);
        Log.i("url", voids[0]);
        //URL url = new URL(urlString);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();

        con.addRequestProperty("User-Agent", "REST");
        System.setProperty("http.keepAlive", "false");
        con.setRequestProperty("Accept", "*//*");
        con.setConnectTimeout(10000);
        con.setReadTimeout(10000);
        con.setAllowUserInteraction(false);
        con.setRequestMethod("GET");
       responseCode = con.getResponseCode();
        System.out.println("Sending get request : " + url);
        System.out.println("Response code : " + responseCode);
        // Reading response from input Stream
        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String output;
        StringBuffer response = new StringBuffer();
        while ((output = in.readLine()) != null) {
            response.append(output);
        }
        in.close();
        System.out.println(response.toString());

URL: http://milk.gall5.com/api/SalePunch?CustomerID=1&Model= enj" CustomerID": "1"," lstSalesPunchDetail":[‹ " ListManufacturer":[[ " ManufactureID":1," ManufacturerName ": "Амуль", "один":40,"OneByFour":10,"OneByTwo":20,"QtyOne":0,"QtyOneByFour":23,"QtyOneByTwo":330,"visibilityOne": правда,"visibilityOneByFour":true,"visibilityOneByTwo":true}],"ProductId":2,"ProductName":"Ton Milk"}]}

1 ответ

Попробуйте закодировать Model Параметр вашего URL в первую очередь. Вы можете сделать это с URLEncoder.encode() метод

Другие вопросы по тегам