1

我想删除整个问题

4

2 回答 2

1

一种可能的方法是实现构建器类(这可能被认为是困难的,但可以工作),并将所有需要的数据保存在某个地方,以使它们成为 JSON。

例如

class Loggable_HttpRequest_Builder implements HttpRequest.Builder{
//get an actual builder
private HttpRequest.Builder actual_builder = HttpRequest.newBuilder();
//map for keeping data for building json at the end
private Map<String,String> json_data=...
@Override
public HttpRequest.Builder header(String name, String value) {
// log the name + value
json_data.put(name,value);
//call the actual builder
actual_builder.header(name,value);
}
/*
implement all required funcs, simply log the request, and call the same method of actual_builder, e.g. as above
*/
public String get_json_log(){
/*JSON-ize the json_data, and return*/
}
}

(对不起 java 的东西,kotlin 对我来说太甜了)

于 2020-06-11T13:47:08.527 回答
1

尝试使用这种方式

    JSONObject json = Util.parseJson(httpRequest);
    logger.debug("Response data", json.toString());
于 2020-06-11T13:29:11.640 回答