【问题标题】:Getting Http status 400 in api 23 and below在 api 23 及以下获取 Http 状态 400
【发布时间】:2017-01-21 20:04:31
【问题描述】:

我必须调用一个 GET 请求的 Rest API。

当我使用 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());

网址: 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"}]}

【问题讨论】:

    标签: android httpconnection


    【解决方案1】:

    首先尝试对 URL 的 Model 参数进行编码。 你可以使用URLEncoder.encode() 方法来做到这一点

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2018-09-27
      相关资源
      最近更新 更多