Http接口postman获取应答正常,c# RestSharp调用异常

文章描述了一个使用RestSharp库调用Http接口时遇到的问题,即在本地环境正常工作,但在服务器上返回的StatusCode为0。问题归因于服务器可能未启用TLS1.2支持,而Postman默认支持TLS1.2,因此在本地和服务器的Postman测试中没有问题。解决方案是确保服务器配置启用TLS1.2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在某个Http接口中使用RestSharp库,本地使用正常,但服务器上StatusCode返回0。但本地和服务器上postman都返回正常。

以下是C#代码部分:

        IRestResponse<T> response;
        var client = new RestClient();
        client.BaseUrl = new Uri(_baseUrlface);
        client.AddHandler("application/json", new RestSharp.Deserializers.JsonDeserializer());
        client.Timeout = 60000;
        request.AddHeader("Content-Type", "application/json");
        response = client.Execute<T>(request);


        var request = new RestRequest("/face/external/getToken", Method.POST);

        GetTokenRsp gettokenrsp = new GetTokenRsp();

        request.AddHeader("Content-Type", "application/json");
        string message = "";
        message = JsonTools.ObjectToJson(gettokenreq);                

        request.AddParameter("application/json", message, ParameterType.RequestBody);

        var response = Execute<PostCreated>(request);
        logger.Error("StatusCode: " + response.StatusCode.ToString());

`

简要地说, 就是增加对TLS1.2的支持:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

那么问题来了,是我本机默认就支持TLS1.2吗, 是那么设置的? postman上又怎么设置呢?

应该是我的本机启用了TLS1.2支持,而服务器上没有启用TLS1.2的支持,所以出现同样的代码本机没问题,而服务器上没法使用。

Postman里面默认确实是默认支持TLS1.2的,所以在本地和服务器端postman都没有问题。但TLS1.2我在Setting当中没有看到如何设置或更改成TLS1.1和TLS1.0的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值