Получение статуса 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()
метод