1

JavaにはUnirest 1.5.4を使用しています。サーバーは DELETE 呼び出しに対して 204 - NO_CONTENT ステータスと空の応答本文で応答します。同期削除呼び出しを行うと、次の呼び出しは SocketTimeoutException で終了します。

より詳細な調査のために、サーバーのいくつかの行を交換して、ステータス 200 と「{}」ボディを応答させました。このサーバー側のハックでのみ、Unirest は正常に動作します。

これが私の(失敗した)Unirestクライアントコードです:

public static void main(String... args) throws UnirestException {
    String baseUrl = "http://localhost:9010/orga/";
    String orgaJson = "{}";
    HttpResponse<String> postResponse = Unirest.post(baseUrl).body(orgaJson).asString();
    System.out.println("POST status = " + postResponse.getStatus());
    JSONObject orga = new JSONObject(postResponse.getBody());
    String orgaId = orga.getJSONObject("_id").getString("$oid");
    HttpResponse<String> deleteResponse = Unirest.delete(baseUrl+"{id}").routeParam("id", orgaId).asString();
    System.out.println("DELETE status = " + deleteResponse.getStatus());
    System.out.println("DELETE body = " + deleteResponse.getBody());
    // the next call will cause a SocketTimeoutException
    Unirest.post(baseUrl).body(orgaJson).asString();
}
4

1 に答える 1