You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中发送JSON POST请求时如何获取返回的HTTP状态码

实现方法

你用的是JDK11及以上内置的标准java.net.http.HttpClient的话,不需要从client实例本身找HTTP状态码——HttpClient是负责发送请求的公共客户端实例,不绑定单次请求的响应数据,单次请求的状态码、响应头、响应体都存在该请求对应的HttpResponse响应对象里,直接调用响应对象的statusCode()方法就能拿到int类型的状态码。

同步请求场景示例

// 构建你要发送的请求对象,替换成你实际的请求参数、请求地址、请求方法
HttpRequest targetRequest = HttpRequest.newBuilder()
        .uri(URI.create("目标接口地址"))
        .header("Content-Type", "application/json")
        // 替换成实际的请求方法,比如GET、POST等
        .GET()
        .build();

// 发送请求后拿到HttpResponse响应实例,第二个参数按需选择对应响应体处理器
HttpResponse<String> response = client.send(targetRequest, HttpResponse.BodyHandlers.ofString());

// 直接获取当前请求的HTTP状态码
int statusCode = response.statusCode();

// 后续可直接根据状态码做逻辑判断
if (statusCode >= 200 && statusCode < 300) {
    // 2xx成功逻辑,可通过response.body()拿到响应体
    String responseContent = response.body();
} else {
    // 异常状态码处理逻辑
}

异步请求场景示例

如果用的是异步发送方法sendAsync,在异步回调里从响应对象取状态码即可:

client.sendAsync(targetRequest, HttpResponse.BodyHandlers.ofString())
        .thenAccept(response -> {
            int asyncStatusCode = response.statusCode();
            // 后续处理逻辑
        });

常见误区:不要尝试从HttpClient实例本身读取单次请求的状态,同一个client可以发送无数次请求,本身不会存储某一次请求的响应数据。

对应代码场景参考:
函数执行场景截图

内容的提问来源于stack exchange,提问作者SturdiestCoderMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:54:52