HTTP请求的InputStream格式不正确

时间:2020-10-15 18:38:43

标签: java http service request

我对http请求有挑战。我正在尝试使用以下Java代码从服务中检索数据。我对HTTP请求使用POST请求方法来获取数据(出于某种原因,它需要发布)。但是,当我打印出结果(我以为是Json Objet)时,它会打印出许多与Json内容无关的XLM,HTML和Javascript。我的“ getResponse”方法似乎没有正确检索数据的问题。我什至尝试了“ new Gson.fromJson(response,TemplateClass.class);”

public class API {

private static HttpURLConnection connection;

public static Company company;

public static String sendRequest;


public static void sendPostRequest() throws IOException {

    URL url;

    String cNumberTest = "34046220";
    company = new Company(cNumberTest);

    sendRequest = new Gson().toJson(company); //Sending java object in Json format


    try {

        url = new URL("myUrl"); //URL reference

        connection = (HttpURLConnection) url.openConnection(); //Åbner en connection til URL
        connection.setRequestProperty("Authorization", "Bearer " + "TokenKey"); //API nøgle
        connection.setRequestProperty("Content-Type", "application/json"); //Json format i service
        connection.setRequestMethod("POST");


        connection.setDoOutput(true);

        DataOutputStream dataoutput = new DataOutputStream(connection.getOutputStream());
        dataoutput.write(sendRequest.getBytes());
        dataoutput.flush();
        dataoutput.close();

        int status = connection.getResponseCode(); //Returnerer status koden fra http response

        System.out.println("Response status: " + status + "\n");


        getResponse();  //Calls method from below


    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }


    }


    public static void getResponse() throws IOException {

        BufferedReader in = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
        }


        System.out.println(inputLine); //prints XML, javascript html content outside of json object?

        in.close();

    }
    

}

0 个答案:

没有答案