gpt4 book ai didi

java - 如何跟踪 AsynchttpClient 请求

转载 作者:行者123 更新时间:2023-12-02 13:08:24 27 4
gpt4 key购买 nike

嗨,我正在尝试做这样的事情。知道如何知道哪个请求对应于哪个项目吗?

for (int i=0; i<projects.size(); i++) {
post("api/Project/getProductionTime", rp, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response)
{
projects.get(i).setAmount(<things from response>)
}
}
}

最佳答案

我想您可以在创建 JsonHttpResponseHandler 实例之前以及在 onSuccess block 内使用它之后“卡住”项目:

final <project type> project = projects.get(i);

就在 post() 之前。

如果没有,您可以创建一个Map,它可以在项目和请求之间保持一一对应。

更新:请注意,我无法测试此代码,因为我不知道您的项目结构。

// I assume that both Project and MyJsonHttpResponseHandler has hashCode() and equals() methods
// MyJsonHttpResponseHandler is a subcalss of JsonHttpResponseHandler with hashCode() and equals() methods
private final ConcurrentHashMap<MyJsonHttpResponseHandler, Project> map = new ConcurrentHashMap<>();
...
for (int i=0; i<projects.size(); i++) {
MyJsonHttpResponseHandler handler = new MyJsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response)
{
Project project = map.get(this);
project.setAmount(<things from response>);

map.remove(this);
}
};
map.put(handler, projects.get(i));
post("api/Project/getProductionTime", rp, handler);
}

关于java - 如何跟踪 AsynchttpClient 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44051765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com