Tag: restsharp

RestSharp在上传时将整个文件加载到内存中。 怎么避免呢?

我在Mono项目中使用RestSharp来上传一些文件,我注意到当上传大文件时,内存会大大增加。 看看RestSharp源代码,我注意到FileParameter需要一个字节数组,这意味着它确实将文件加载到内存中。 难道我做错了什么? RestSharp有没有办法不这样做? 我可能正在上传非常大的文件,因此从内存中上传它们不是一种选择。 欢迎提供任何帮助(包括告诉我使用单声道提供的另一个HTTP库)。

使用RestSharp将POST参数添加到POST请求中

我想对这样的URL发出POST请求: http://localhost/resource?auth_token=1234 我想在体内发送JSON。 我的代码看起来像这样: var client = new RestClient(“http://localhost”); var request = new RestRequest(“resource”, Method.POST); request.AddParameter(“auth_token”, “1234”); request.AddBody(json); var response = client.Execute(request); 如何将auth_token参数设置为GET参数并将请求设置为POST?

如何将此.NET RestSharp代码转换为Microsoft.Net.Http HttpClient代码?

我正在试图弄清楚如何使用HttpClient来发布一些简单的参数。 电子邮件 密码 我一直用RestSharp做这个,但我正试图迁移它。 我怎么能用HttpClient做到这一点,好吗? 我有以下RestSharp代码 var restRequest = new RestRequest(“account/authenticate”, Method.POST); restRequest.AddParameter(“Email”, email); restRequest.AddParameter(“Password”, password); 我怎样才能将其转换为使用(Microsoft.Net.Http) HttpClient类呢? 请注意:我正在进行POST 此外,这与PCL组件有关。 最后,我可以添加自定义标头。 说: “ILikeTurtles”, “true” 。

RestSharp – 授权标头未涉及WCF REST服务

我试图通过基本身份validation通过HTTPS调用本地托管的WCF REST服务。 这是有效的,授权标题通过就好了,所有人都很高兴: ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate; var request = (HttpWebRequest)WebRequest.Create(“https://localhost/MyService/MyService.svc/”); request.Method = “GET”; request.ContentType = “application/json”; request.Headers.Add( System.Net.HttpRequestHeader.Authorization, “Basic ” + this.EncodeBasicAuthenticationCredentials(“UserA”, “123”)); WebResponse webResponse = request.GetResponse(); using (Stream webStream = webResponse.GetResponseStream()) { if (webStream != null) { using (StreamReader responseReader = new StreamReader(webStream)) { string response = responseReader.ReadToEnd(); } } } 但是,当我尝试使用RestSharp时,Authorization标头永远不会通过请求: ServicePointManager.ServerCertificateValidationCallback = […]

RestSharp ASYNC client.ExecuteAsync ()的示例有效

有人可以帮我修改下面的代码: client.ExecuteAsync(request, response => { Console.WriteLine(response.Content); }); 基本上我想使用上面的ExecuteAsync方法,但不想打印但返回给调用者的response.Content。 有没有简单的方法来实现这一目标? 我试过这个,但没有工作: public T Execute(RestRequest request) where T : new() { var client = new RestClient(); client.BaseUrl = BaseUrl; client.Authenticator = new HttpBasicAuthenticator(_accountSid, _secretKey); request.AddParameter(“AccountSid”, _accountSid, ParameterType.UrlSegment); // used on every request var response = client.ExecuteAsync(request, response => { return response.data); }); } 以上代码来自https://github.com/restsharp/RestSharp

使用RestSharp时如何以惯用方式处理HTTP错误代码?

我正在使用RestSharp构建HTTP API客户端,我注意到当服务器返回HTTP错误代码(401 Unauthorized,404 Not Found,500 Internal Server Error等)时, RestClient.Execute()不会抛出exception – 而是获得一个带有null .Data属性的有效RestResponse 。 我不想在我的API客户端中手动检查每个可能的HTTP错误代码 – RestSharp是否提供了将这些错误传递给我的客户端应用程序的更好方法? 更进一步的细节。 RestSharp公开Response.ErrorException属性 – 如果RestClient.Execute()调用导致任何exception,它将通过ErrorException属性公开而不是被抛出。 他们的文档包括以下示例: // TwilioApi.cs public class TwilioApi { const string BaseUrl = “https://api.twilio.com/2008-08-01”; public T Execute(RestRequest request) where T : new() { var client = new RestClient(); client.BaseUrl = BaseUrl; client.Authenticator = new HttpBasicAuthenticator(_accountSid, _secretKey); request.AddParameter(“AccountSid”, […]

RestSharp序列化/反序列化命名转换

我正在尝试使用RestSharp包装Plivo API( 是的,我知道它已经完成 )。 但是,我找不到将API命名约定转换为我自己的方法,例如: “呼叫”( https://www.plivo.com/docs/api/call/#make-an-outbound-call )至少需要: to , from和answer_url参数。 这些参数也区分大小写。 我希望能够提供一个CallRequest类,包装我首选命名约定中所需的数据,然后以某种方式在RestSharp序列化之前转换它们。 例: public class CallRequest { /// /// The phone number to be used as the caller id (with the country code).For eg, a USA caller id number could be, 15677654321, with ‘1’ for the country code. /// public string From { get; […]

RestSharp忽略.NET Core上的系统代理(例如Fiddler)

我想用Fiddler检查http流量,但没有捕获任何http流量,我的测试代码: private static void ByRestSharp() { var restClient = new RestClient(“https://jsonplaceholder.typicode.com”); var request = new RestRequest(“posts”, Method.GET); var response = restClient.Get<List>(request); Console.WriteLine(“{0} posts return by RestSharp.”, response.Data.Count); } 但是在我改为使用HttpClient后,Fiddler可以捕获http流量,示例代码: private static void ByHttpClient() { var httpClient = new HttpClient(); using (var req = new HttpRequestMessage(HttpMethod.Get, “https://jsonplaceholder.typicode.com/posts”)) using (var resp = httpClient.SendAsync(req).Result) { var json = […]

在没有适当的REST-Api的情况下测试RestSharp的反序列化

编辑:问题的解决方案可以在John Sheehan的第一条评论中找到! 我想在我的项目中使用Restsharp作为Rest-Client。 由于REST服务器尚未运行,我想在没有服务器的情况下测试客户端。 我主要关注的是返回XML-Response的反序列化。 是否可以在没有适当的RestSharp.RestResponse的情况下使用RestSharp反序列化XML? 我试过这样的: public void testDeserialization() { XmlDeserializer d = new XmlDeserializer(); RestSharp.RestResponse response = new RestSharp.RestResponse(); string XML = @”Some textAnother textEven more text”; response.Content = XML; d.RootElement = “Response”; Response r = d.Deserialize(response); } public class Response { public string Item1 { get; set; } public string Item2 { […]

使用RestSharp发布数据时序列化对象

我最近开始使用RestSharp来使用使用XML的REST服务。 它使得从XML反序列化对象变得无关紧要。 但我的问题是,在回发到服务时重新排序的最佳方法是什么? 我应该使用LINQ-to-XML进行重新序列化吗? 我尝试使用Serializeable属性和SerializeToXml实用程序函数,但是当我这样做时,似乎打破了RestSharp执行的反序列化。