问题描述:通过3种不同方法(WebRequest、RESTSharp、HttpClient)的c# JSON REST响应是空的,但是Postman和浏览器可以工作。
解决方案: 这个问题可能由于以下几个原因引起:
using System.Net.Http;
using System.Text;
using Newtonsoft.Json;
// 创建一个HttpClient实例
HttpClient client = new HttpClient();
// 创建一个包含JSON数据的对象
var requestData = new { key1 = "value1", key2 = "value2" };
// 将对象序列化为JSON字符串
string json = JsonConvert.SerializeObject(requestData);
// 创建一个HttpContent对象,并设置Content-Type为application/json
HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
// 发送POST请求,并获取响应
HttpResponseMessage response = await client.PostAsync("https://example.com/api", content);
// 确保请求成功
if (response.IsSuccessStatusCode)
{
// 处理响应
string responseBody = await response.Content.ReadAsStringAsync();
// 进一步处理响应体
}
using System.Net.Http;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
// 创建一个HttpClientHandler实例,并设置ServerCertificateCustomValidationCallback回调函数
HttpClientHandler handler = new HttpClientHandler()
{
ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true
};
// 创建一个HttpClient实例,使用自定义的HttpClientHandler
HttpClient client = new HttpClient(handler);
// 发送请求,并获取响应
HttpResponseMessage response = await client.GetAsync("https://example.com/api");
// 确保请求成功
if (response.IsSuccessStatusCode)
{
// 处理响应
string responseBody = await response.Content.ReadAsStringAsync();
// 进一步处理响应体
}
如果上述方法仍无法解决问题,请尝试以下步骤:
希望以上信息对您有帮助。如果您需要更多帮助,请告诉我。
领取专属 10元无门槛券
手把手带您无忧上云