C# HttpClient请求在windows下工作,但在我的服务器Ubuntu中不工作

C# HttpClient请求在windows下工作,但在我的服务器Ubuntu中不工作,c#,ubuntu,httpclient,C#,Ubuntu,Httpclient,我是asp.net核心的新手。此代码适用于windows,而不是我的ubuntu服务器。 HttpClient在Windows中工作,而不是在Ubuntu中 public async Task<JsonResult> PostPaid ( [FromBody] object ob) { String rep = ""; User d = JsonConvert.DeserializeObject<User>(ob.ToStr

我是asp.net核心的新手。此代码适用于windows,而不是我的ubuntu服务器。 HttpClient在Windows中工作,而不是在Ubuntu中

  public async  Task<JsonResult>  PostPaid ( [FromBody]  object  ob)
{
    String rep = "";
    User d = JsonConvert.DeserializeObject<User>(ob.ToString());
    try
    {

        var vm = new { username = d.Login, password = d.Pwd };

        {
            //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

            var handler = new HttpClientHandler()
            {
                ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
            };

            HttpClient client = new HttpClient(handler);
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            //client.DefaultRequestHeaders.Accept.Clear();

            client.DefaultRequestHeaders.Add("Accept", "application/json");
            var httpRequestMessage = new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                RequestUri = new Uri(d.MyUrl),
                Content = new StringContent(JsonConvert.SerializeObject(vm), Encoding.UTF8, "application/json")
            };
            httpRequestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            HttpResponseMessage result = await client.SendAsync(httpRequestMessage);
            rep = await result.Content.ReadAsStringAsync();

        }
    }
    catch (Exception ex)
    {
        return Json(ex.ToString());
    }
    return Json(rep);
}
公共异步任务后付费([FromBody]对象ob)
{
字符串rep=“”;
用户d=JsonConvert.DeserializeObject(ob.ToString());
尝试
{
var vm=new{username=d.Login,password=d.Pwd};
{
//ServicePointManager.ServerCertificateValidationCallback=委托{return true;};
var handler=new-HttpClientHandler()
{
ServerCertificateCustomValidationCallback=HttpClientHandler.DangerousAcceptionServerCertificateValidator
};
HttpClient=新的HttpClient(处理程序);

//ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; //client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Add(“Accept”、“application/json”); var httpRequestMessage=新的httpRequestMessage { 方法=HttpMethod.Post, RequestUri=新的Uri(d.MyUrl), Content=newstringcontent(JsonConvert.SerializeObject(vm),Encoding.UTF8,“application/json”) }; httpRequestMessage.Content.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”); HttpResponseMessage结果=等待客户端.SendAsync(httpRequestMessage); rep=wait result.Content.ReadAsStringAsync(); } } 捕获(例外情况除外) { 返回Json(例如ToString()); } 返回Json(rep); }
我想要一个在ubuntu中工作的例子。 错误消息:“出现一个或多个错误。(任务已取消。)

“System.AggregateException:发生一个或多个错误。(任务已取消。)\n-->System.Threading.Tasks.TaskCanceledException:任务已取消。\n----内部异常堆栈跟踪结束---\n位于System.Threading.Tasks.task
1.GetResultCore(布尔waitCompletionNotification)\n位于System.Threading.Tasks.Tasks
1.get\u Result”()\n位于E:\Nouveau dossier\ProjetDevelopment\Projets\webasp\Sms-Copie(40)-bon anomalie PostPaid\WebMat\Controllers\UserController.cs中的SmsWeb.Controllers.PostPaid(对象ob)处:第765行“


通常这种类型的故障是由于HTTPS(安全)造成的并且TLS身份验证失败。请尝试添加到静态方法上方的代码开头:ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.TLS;HttpClient client=new HttpClient();“不工作”是什么意思?任何异常?如果是,请包括完整的异常消息、内部异常和stacktrace。@mastermelo不要挂断ServicePointManager,您不会将其用于.NET Core中的HttpClient。特别是因为您还没有提到错误。异常:“出现一个或多个错误。(任务已取消)。”