gpt4 book ai didi

c# - HttpClient PostAsync 不返回

转载 作者:可可西里 更新时间:2023-11-01 09:14:01 26 4
gpt4 key购买 nike

我已经看到很多关于此的问题,并且都指向我使用 ConfigureAwait(false),但即使这样做之后,它仍然没有返回任何响应。当我运行调试器时,代码在 PostAsync 处停止并且不会继续我的代码。我在这里做错了什么吗?跟我通过 HTTPS 调用 API 有关系吗?

代码如下:

public async static Task<PaymentModel> AddAsync(Card card)
{
HttpClient client = new HttpClient();

client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:", "hidden"))));

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

var cardJson = JsonConvert.SerializeObject(card);
var postRequest = new StringContent(cardJson, Encoding.UTF8, "application/json");
var request = await client.PostAsync(new Uri("https://sample-3rd-party-api/api/endpoint/here"), postRequest).ConfigureAwait(false);
var content = await request.Content.ReadAsStringAsync().ConfigureAwait(false);
}

编辑:

作为对以下评论的回应,代码包含在使用处理程序单击按钮时调用的方法 AddAsync(Card card) 中:

public async void OnExecute(object sender, EventArgs args)
{
//some code here
payment = await PaymentModel.AddAsync(card).ConfigureAwait(false);
}

编辑 2:我尝试对 API 执行 ping 操作,但它返回的请求超时,但当我使用 Postman 尝试时,一切正常(API 只是一个对所有人开放的沙箱,因此可以分享 this ): enter image description here

enter image description here

编辑 3:

我认为问题在于我没有 SSL 证书来访问 API。我有一个连接到同一 API 的 PHP 服务器,我必须将 SSL_VERIFYPEER 设置为 false 才能访问它(别担心,我现在添加了一个 cacert,所以它再次为 true)。这里会发生同样的问题吗?如果是这样,我该怎么做才能为我的 xamarin 表单应用程序创建有效证书

最佳答案

你可以用这个

var json = JsonConvert.SerializeObject(card);
using (var client = new HttpClient())
{
var t = await client.PostAsJsonAsync("https://sample-3rd-party-api/api/endpoint/here", json);

Response R =JsonConvert.DeserializeObject<Response>((JsonConvert.DeserializeObject(t.Content.ReadAsStringAsync().Result.ToString())).ToString());
}

关于c# - HttpClient PostAsync 不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50075135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com