响应代码:调用API期间的错误请求400

时间:2018-06-02 05:45:04

标签: android web-services

我开发了一个带有minSdkVersion 21和targetSdkVersion 26的Android应用程序。我已经从菜单构建了apk - >构建 - >建立APK(s)。我从路径..app \ build \ outputs \ apk \ debug中取了apk。它在Android版本6.0或7.0中工作,但它在调用api期间无法在Android版本5.0或5.1.1中工作并抛出错误请求400.我将我的代码放在下面。

protected String doInBackground(URL... urls) {
    //android.os.Debug.waitForDebugger();
    HttpURLConnection oConn = null;
    BufferedReader oBR = null;

    String csResponseData = "";
    //String csResponse = "";
    URL url= null;

    try {
        url = new URL(urls[0].toString());
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    try {
        oConn =(HttpURLConnection) url.openConnection();
        //InputStream inputStream = oConn.getInputStream();

        int inResponseCode = oConn.getResponseCode();
        if(inResponseCode == HttpURLConnection.HTTP_OK){
            oBR = new BufferedReader(new InputStreamReader(oConn.getInputStream()));
            csResponseData = oBR.readLine();
            m_csStatus = "SUCCESS";
        }else{
            switch (inResponseCode) {
                case HttpURLConnection.HTTP_FORBIDDEN:  //403
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " FORBIDDEN.";
                    break;
                case HttpURLConnection.HTTP_NOT_FOUND:  //404
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " INVALID API URL.";
                    break;
                case HttpURLConnection.HTTP_BAD_REQUEST:  //400
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " BAD REQUEST.";
                    break;
                case HttpURLConnection.HTTP_GATEWAY_TIMEOUT:  //504
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " GATEWAY TIMEOUT.";
                    break;
                case HttpURLConnection.HTTP_UNAVAILABLE:  //503
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " UNAVAILABLE.";
                    break;
                case HttpURLConnection.HTTP_BAD_METHOD:  //405
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " BAD METHOD.";
                    break;
                case HttpURLConnection.HTTP_INTERNAL_ERROR: //500
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " SERVER INTERNAL ERROR.";
                    break;
                default:
                    m_csErrorMsg = "Response Code :: " + inResponseCode + " UNKNOWN ERROR.";
                    break;
            }

            oBR = new BufferedReader(new InputStreamReader(oConn.getErrorStream()));
            csResponseData = "";
            m_csErrorMsg += "\nError Message :: " + oBR.readLine();
            m_csStatus = "FAILED";
        }

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }finally {
        oBR = null;
        if(oConn != null){
            oConn.disconnect();
        }
    }
    return csResponseData;
}

0 个答案:

没有答案