Discourse 포럼 서버에 이 API를 사용하여 메시지 2개 이상을 보내려고 합니다:
제 Java 코드:
public void test()
throws UnirestException, JsonMappingException, JsonProcessingException, InterruptedException {
Unirest.config().cookieSpec(CookieSpecs.IGNORE_COOKIES);
Map<String, String> header = new HashMap<>();
header.put("Content-Type", "application/json");
header.put("Api-Key", [redacted]);
header.put("Api-Username", [redacted]);
header.put("Accept", "application/json");
Unirest.post(URL + "/posts.json")
.headers(header)
.queryString("title","1st Msg")
.queryString("raw", "Message 1")
.queryString("target_recipients", "Kenny")
.queryString("archetype", "private_message")
.asJson();
// TimeUnit.SECONDS.sleep(20);
Unirest.post(URL + "/posts.json")
.headers(header)
.queryString("title","2nd Msg")
.queryString("raw", "Message 2")
.queryString("target_recipients", "Kenny")
.queryString("archetype", "private_message")
.asJson();
}
위 테스트에서 두 메시지 모두 성공적으로 전송되었습니다(예외가 발생하지 않았습니다). 문제는 Discourse 계정으로 로그인한 후 1번째 메시지만 수신되고 2번째 메시지가 사라져 있는 것을 발견했습니다.
나중에 두 요청 사이에 20초의 지연(즉, 주석 처리된 부분)을 넣으면 서버가 두 메시지 모두를 수신할 수 있음을 알게 되었습니다.
무엇이 잘못된 것일까요?
사용 중인 버전:
- Discourse 3.1.0.beta2
- Java 11
- unirest-java 3.14.2