Java raw 请求和获取

时间:2024-04-03 07:31:29

未经允许,禁止转载

raw方式使用的是纯字符串的数据上传方式;
在postman中,raw格式如下:

Java raw 请求和获取
Java raw 请求和获取

请求类型为raw,请求格式为json;
java发送raw请求代码如下:

public static JSONObject deviceRequest() {

    JSONObject result = null;

    try {
        String url = "url 地址";
        JSONObject json = new JSONObject();
        json.put("param", param 参数 );
        @SuppressWarnings({"resource"})
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost post = new HttpPost(url);
        StringEntity postingString = new StringEntity(json.toJSONString());
        post.setEntity(postingString);
        post.setHeader("Content-type", "application/json");
        HttpResponse response = httpClient.execute(post);
        String content = EntityUtils.toString(response.getEntity());

        result = (JSONObject) JSONObject.parse(content);

        System.out.println(result);

    } catch (ParseException | IOException e) {
        e.printStackTrace();
    }

    return result;
}

java获取raw包请求需要从流中获取:

public static String readRaw(InputStream inputStream) {

    String result = "";
    try {
        ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];

        int len;
        while ((len = inputStream.read(buffer)) != -1) {
            outSteam.write(buffer, 0, len);
        }

        outSteam.close();
        inputStream.close();

        result = new String(outSteam.toByteArray(), "UTF-8");

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

    return result;
}

传入参数 使用 request.getInputStream()

String result = FileUtils.readRaw(request.getInputStream());

可从流中获取raw包的参数