C# 如何在RestSharp中发送POST请求?

C# 如何在RestSharp中发送POST请求?,c#,rest,restsharp,C#,Rest,Restsharp,我有这个代码,我正试图转换为RestSharp。为了清晰起见,我已经移除了使用块来压缩它 using System.IO; using System.Net; using RestSharp; string GetResponse(string url,string data) { var request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentT

我有这个代码,我正试图转换为RestSharp。为了清晰起见,我已经移除了使用块来压缩它

using System.IO;
using System.Net;
using RestSharp;

string GetResponse(string url,string data)
{
    var request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    var bytes = Encoding.UTF8.GetBytes(data);
    request.ContentLength = bytes.Length;
    request.GetRequestStream().Write(bytes, 0, bytes.Length);
    var response = (HttpWebResponse)request.GetResponse();
    var stream = response.GetResponseStream();
    if (stream == null) return string.Empty;
    var reader = new StreamReader(stream);
    return reader.ReadToEnd();
}
我尝试了以下顺序的东西:

string GetResponse(string url, string data)
{
    var client = new RestClient(url);
    var request = new RestRequest("", RestSharp.Method.POST);
    request.AddParameter("application/x-www-form-urlencoded", data);
    var response = client.Execute(request);
    return response.Content;
}

我似乎无法使用RestSharp发布请求,在
应用程序/x-form-urlencoded
中发送POST请求的正确格式是什么?

因此,结果表明,所有参数都已在数据字符串中序列化。而我需要手动将它们添加到RestSharp请求中

foreach (var pair in data) 
{ 
    request.AddParameter(pair.Key, pair.Value); 
}

其中数据是键/值对结构

使用该请求的java服务器(我无法控制)正在为第二个请求提供空指针异常。基本上,从它的角度来看,请求在某种程度上是不同的。我猜唯一真正的调试方法是查看wireshark中的第一个请求,然后尝试让RestSharp版本以同样的方式运行。我希望能有一些快速的了解……如果您与stacktrace共享空指针异常消息,可能会给您一些建议