HTTP-ответ не дает вывода - PullRequest
       15

HTTP-ответ не дает вывода

0 голосов
/ 29 августа 2018

Я работаю над приложением, которое взаимодействует с устройством контроля безопасности помещения. Я хочу получать информацию об устройствах из API. Я использую HttpUrlConnection и POST метод. Он попадает в API, и я получаю 200 ОК ответ, но я получаю

"{" json ": {" control ": {" cmd ":" getdevice "," uid ": 256}}} не существует"

Я перепробовал все решения от stackoverflow и других платформ, но он не дает вывода. Более того, я протестировал этот API на Postman, и он работает там и предоставляет информацию об устройстве.

Вот код:

 public class HTTPRequestTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... params) {

        String username = "admin";
        String password = "888888";
        URL url = null;
        try {
            url = new URL("http://192.168.100.25/network.cgi");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        assert url != null;
        HttpURLConnection httpRequest = null;
        try {
            httpRequest = (HttpURLConnection) url.openConnection();
            httpRequest.setRequestMethod("POST");
            httpRequest.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            httpRequest.setDoInput(true);
            httpRequest.setDoOutput(true);
      android.util.Base64.encode(authString.getBytes(), android.util.Base64.DEFAULT);
            httpRequest.addRequestProperty("Authorization", "Basic " + "YWRtaW46ODg4ODg4"); // This is auth bytecode
            httpRequest.connect();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    try {

        JSONObject json = new JSONObject();
        JSONObject jsonObject = new JSONObject();
        JSONObject jsonObjectControl = new JSONObject();
        jsonObjectControl.put("cmd","getdevice");
        jsonObjectControl.put("uid",256);
        jsonObject.put("control",jsonObjectControl);
        json.put("json", jsonObject);

        String encodedData = URLEncoder.encode( json.toString(), "UTF-8" );

        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(httpRequest.getOutputStream()));
        writer.write(encodedData);
        writer.flush();

    BufferedReader bufferedReader = null;

        bufferedReader = new BufferedReader
                (new InputStreamReader(httpRequest.getInputStream(), "UTF-8"));

    String line = null;
    StringBuilder sb = new StringBuilder();

    do {
        line = bufferedReader.readLine();
        sb.append(line);
        Log.i("Output line: ",sb.toString());
    }
    while(bufferedReader.readLine()!=null);
    bufferedReader.close();
        int responseCode = httpRequest.getResponseCode();
        String resMsg = httpRequest.getResponseMessage();

    String result = sb.toString();
     Log.d("Output: ","--"+result);
        Log.d("Response Code: "+responseCode, "!!");
        Log.d("Response MSG ","--"+resMsg);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    }
        return null;
    }
}
...