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

标签 c# rest restsharp

我有这段代码,我正试图将其转换为 RestSharp。为了清楚起见,我删除了 using block 以对其进行压缩。

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 发布请求,在 application/x-form-urlencoded 中发送 POST 请求的正确格式是什么?

最佳答案

所以事实证明参数都已经在数据字符串中序列化了。而我需要手动将它们添加到 RestSharp 请求中。

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

其中数据是键/值对结构

关于c# - 如何在 RestSharp 中发送 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083630/

相关文章:

api - 如何通过 REST api 在 Jenkins 中停止构建?

c# - 使用 Nsubstitute 模拟 RestClient ExecuteAsync

c# - 我应该如何在 Windows Phone 7 上使用 RestSharp 实现 ExecuteAsync?

c# - 从 Rest API 反序列化 json 集合时出错

c# - ASP.NET MVC 和 C# : HttpStatusCodeResult() vs HttpNotFound()

c# - 为什么我不能使用 stopwatch.Restart()?

api - 列出所有 Asana 工作区任务

c# - PC 和 USB 设备之间通信的最佳方式是什么

c# - 使用 HierarchialdataTemplate 具有多个级别的 WPF TreeView

java - 映射上的 REST api 404