2017-01-21 6 views
0

GETリクエストのRest APIを1つ呼び出す必要があります。api 23以降でHTTPステータスが400になる

私は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={"CustomerID":"1","lstSalesPunchDetail":[{"ListManufacturer":[{"ManufactureID":1,"ManufacturerName":"Amul","One":40,"OneByFour":10,"OneByTwo":20,"QtyOne":0,"QtyOneByFour":23,"QtyOneByTwo":330,"visibilityOne":true,"visibilityOneByFour":true,"visibilityOneByTwo":true}],"ProductId":2,"ProductName":"Ton Milk"}]}

答えて

0

最初にあなたのURLのModelパラメータをエンコードするようにしてください。 URLEncoder.encode()メソッドで行うことができます

関連する問題