尽管包含正文,Postman POST 请求仍发送空流

问题描述 投票:0回答:1

我正在使用 POSTMAN 来测试我用 JAVA 编写的 api。我能够访问 api 本身(我在调试时看到它),但我发送的 JSON 对象被接收为空。执行结束时,会发生空打印。

在标题配置中,我有以下内容:

在正文部分我输入了以下 json:

我的Java代码:

@POST
@Path("admin/save'")
public Response printInputText(@Context SecurityContext sc,InputStream incomingData) {

        String requestText = getStringFromInputStream(incomingData);
        System.out.println(requestText);
        if(requestText.equals("")){
            return Response.status(Status.INTERNAL_SERVER_ERROR).build();   
        }
        return Response.status(Status.OK).build();

}

public static String getStringFromInputStream(InputStream is) {

    BufferedReader br = null;
    StringBuilder sb = new StringBuilder();
    String line;
    try {
        br = new BufferedReader(new InputStreamReader(is));
        while ((line = br.readLine()) != null) {
            sb.append(line + System.lineSeparator());
        }

    } catch (IOException e) {
        e.getMessage();
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return sb.toString();
}

curl(稍微更改了网址,但我正在访问该网址,所以这不是问题):

curl --location --request POST 'http://uri.com/ui/rest/admin/save' \

--标题“授权:基本 QzUzMDY3Nzc6QWxlWEZlckczMg==”\

--header '内容类型:application/json' \

--数据原始'{ “核心价值”, "nextKey": "nextVal", “lastKey”:“lastVal” }'

java postman
1个回答
0
投票

尝试以

"data:"
为前缀并以
"\n\n"
结尾,如下所示:

async def generate_stream(request: Request):

    async def stream_results():
        for i, token in enumerate(['a', 'b', 'c']):
            event = {
                "token": {
                    "id": i,
                    "text": token,
                    "logprob": 0.0,
                    "special": None
                }
            }
            event_data = "data:" + json.dumps(event) + "\n\n"
            yield event_data.encode("utf-8")

    return StreamingResponse(stream_results(), media_type='text/event-stream')
© www.soinside.com 2019 - 2024. All rights reserved.