使用CurlNative/CurlThin NuGet包发起带认证的JSON POST请求失败求助
使用CurlThin/CurlNative发起携带JSON数据与认证信息的POST请求失败求助
我尝试用C#的CurlThin/CurlNative NuGet包发起携带JSON数据和Bearer认证信息的POST请求,但请求执行失败。以下是我的实现代码,恳请有相关使用经验的开发者帮忙排查问题:
public void CurlPost(string url, string token, string postData) { // 提取libcurl和ssl库到bin目录 CurlResources.Init(); var global = CurlNative.Init(); var easy = CurlNative.Easy.Init(); try { CurlNative.Easy.SetOpt(easy, CURLoption.URL, url); CurlNative.Easy.SetOpt(easy, CURLoption.POSTFIELDSIZE, Encoding.ASCII.GetByteCount(postData)); CurlNative.Easy.SetOpt(easy, CURLoption.COPYPOSTFIELDS, postData); // HTTPS端点需要设置CA证书路径 CurlNative.Easy.SetOpt(easy, CURLoption.CAINFO, CurlResources.CaBundlePath); var dataCopier = new DataCallbackCopier(); CurlNative.Easy.SetOpt(easy, CURLoption.WRITEFUNCTION, dataCopier.DataHandler); var headers = CurlNative.Slist.Append(SafeSlistHandle.Null, $"Authorization: Bearer {token}"); CurlNative.Easy.SetOpt(easy, CURLoption.HTTPHEADER, headers.DangerousGetHandle()); // 指定SSL加密套件列表 CurlNative.Easy.SetOpt(easy, CURLoption.SSL_CIPHER_LIST, "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"); var result = CurlNative.Easy.Perform(easy); Console.WriteLine($"Result code: {result}."); Console.WriteLine("Response body:"); Console.WriteLine(Encoding.UTF8.GetString(dataCopier.Stream.ToArray())); } finally { easy.Dispose(); if (global == CURLcode.OK) CurlNative.Cleanup(); } }
内容的提问来源于stack exchange,提问作者user1131926
相关产品推荐
相关产品推荐

