Tag: restsharp

将PHP数组转换为C#

我正在为第三方API编写C#客户端(我正在使用RestSharp nuget包)。 他们的文档包含PHP示例,我必须将其转换为C#。 他们的大多数样本都很简单,我已经能够将它们转换为C#,但我正在努力解决其中一个因为它接受一个数组数组。 以下是他们的文档中的示例: $params = array ( ‘user_key’ => ‘X’, ‘client_id’=> ‘X, ‘label’ => array( array( ‘language’ => ‘en_US’, ‘name’ => ‘English label’, ), array( ‘language’ => ‘fr_CA’, ‘name’ => ‘French label’, ), ), ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ‘https://api.3rdparty.com/xxx/yyy’); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘apikey: YOURAPIKEY’)); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, […]

RestSharp JsonDeserializer,标识符中包含特殊字符

我有一些来自Last.fm的JSON,如下所示: { “toptags”:{ “@attr”:{ “artist”:”Whatever”, “album”:”Whatever” } } } 是否有一种特殊的方法来设置RestSharp以使其识别@attr ? @(AT符号)导致我出现问题,因为我无法创建与此匹配的标识符。

如何使用属性反序列化元素

我正在使用RESTSharp来使用RESTful Web服务。 其中一个XML元素如下所示: 7.9 而C#类POCO如下: public class Test { public TempC temp_c { get; set; } } public class TempC { public string units { get; set; } public string value { get; set; } } 当我使用RESTSharp时,我得到的TempC对象是用单位填充的,但没有实际值; 例如7.9。 值为NULL。

处理RestRequest RestSharp的对象?

我正在使用RestSharp并创建RestRequest对象以将FileData发送到API。 但是在得到响应之后我想从我的本地机器上删除该文件但是当我尝试做同样的事情时它会给我一个错误“ 文件被其他进程使用 ”。 我认为的原因是我无法处理RestRequest的对象。 请帮我解决一下。 以下是代码。 提前致谢..!!! public string PostMultiformDataAPI(Method method, string apiUrl, string data = “”, Dictionary headers = null) { string[] files = null; try { RestClient client = new RestClient(apiUrl); var request = new RestRequest(); request.Method = method; //Add header values to request if (headers != null) { foreach (var header […]

名为“DefaultRoute”的路径已在路径集合中。 路线名称必须是唯一的

当我将ASP.NET WebAPI解决方案发布到远程IIS Server ,我收到错误消息: 消息:System.ArgumentException:名为“DefaultRoute”的路由已在路径集合中。 路线名称必须是唯一的。 我看到这个线程有同样的问题,但它没有任何效果。 我试过了: 删除所有项目中的所有bin / obj文件夹。 清洗/重建 在发布之前从远程服务器上删除文件 重命名项目 无论如何,我可以找出是否存在陈旧文件。 我确实重命名了一些文件,我听说这可能会导致问题? 不确定这是否重要,但我使用ASP.NET WebApi和RestSharp进行rest调用。 这就是我的Global.asax startup拥有的:它是多余的吗? AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); RouteConfig.RegisterRoutes(RouteTable.Routes);

如何处理异步函数中的返回值

在处理使用异步rest调用的数据API时(我使用的是RestSharp.Portable),处理返回值的最佳方法是什么? 由于异步函数只能返回任务或任务…但调用者无法返回返回值… API如何将数据返回给调用者? 全球物业? 从我到目前为止所看到的,似乎回调函数是与Response Data交互的唯一方法? 以下面的方法为例; 以前我没有使用异步Rest库并且能够返回一个值但是在将其转换为使用RestSharp.Portable后,我没有看到返回值的方法: public async Task GetEntityDescriptor(string entityType) { TaskCompletionSource tcs = new TaskCompletionSource(); var req = new RestRequest(“/qcbin/rest/domains/{domain}/projects/{project}/customization/entities/{entityType}”); AddDomainAndProject(req); req.AddParameter(“entityType”, entityType, ParameterType.UrlSegment); client.ExecuteAsync(req, (res) => { if (res.ResponseStatus == ResponseStatus.Error) { tcs.TrySetException(res.ErrorException); } else { tcs.SetResult(res.Data); } } ); return tcs.Task; } 我所能做的就是返回Task,但是调用者仍无法获取响应数据,或者我错过了一些明显的东西? 调用者是否可以订阅在Task.Completed等处被触发的事件? 我对这个异步概念非常模糊。 是否有编写可移植数据API的示例?

RestSharp PUT XML,RestSharp将它作为GET发送?

我正在尝试使用prestashop API编辑产品,使用XML在C#中使用RestSharp。 文档说明如下: To edit an existing resource: GET the full XML file for the resource you want to change (/api/customers/7), edit its content as needed, then PUT the whole XML file back to the same URL again. 我正在尝试编辑/ customers / 1。 我的GET调用正常工作以检索数据。 我现在正在反序列化数据,根据需要进行编辑,然后重新保存到XML文件。 一切似乎进展顺利。 我现在尝试改变的唯一字段是名字和姓氏。 其余数据未受影响。 这是我正在使用的XML的副本: newLastName newFirstName 该文件保存为EditedXML.xml。 再次,根据文档(我上面粘贴),编辑资源我应该使用PUT将XML放回到相同的URL(即/ customers / 1)。 […]

使用Restsharp PCL上传到Dropbox

我正在尝试使用RestSharp.Portable使用PCL将文件上传到Dropbox。 我的代码是 public async Task UploadFile(Stream fileStream, string fileName) { var client = new RestClient(“https://api-content.dropbox.com”); client.ClearEncodings(); client.AddEncoding(“gzip”, new GzipEncoding()); var request = new RestRequest(“1/files/dropbox/Apps/FileBolt”, HttpMethod.Post); request.AddHeader(“Authorization”, string.Format(“Bearer {0}”, Token)); request.AddParameter(“file”, fileName); byte[] bytes = null; long numBytes = fileStream.Length; using (var br = new BinaryReader(fileStream)) { bytes = br.ReadBytes((int) numBytes); } request.AddFile(new FileParameter { ContentLength […]

使用RestSharp客户端反序列化嵌套的JSON响应

我想使用REST Api并反序列化嵌套的JSON响应。 为此,我尝试创建一些代表JSON Response [1]的POCO类。 响应如下: { “success”: true, “message”: “OK”, “types”: [ { “name”: “A5EF3-ASR”, “title”: “ITIL Foundation Plus Cloud Introduction”, “classroomDeliveryMethod”: “Self-paced Virtual Class”, “descriptions”: { “EN”: { “description”: “some Text null”, “overview”: null, “abstract”: “Some other text”, “prerequisits”: null, “objective”: null, “topic”: null } }, “lastModified”: “2014-10-08T08:37:43Z”, “created”: “2014-04-28T11:23:12Z” }, { “name”: […]

如何在RestSharp中使用PUT?

我想使用PUT,但我只能找到如何使用POST的示例。 我想发送的json数据是使用这个cURL命令发送的-l curl -i -H “Content-Type: application/json” -X PUT -d {“status”:1}’http://192.168.0.3:1337/auto/api/v1.0/relays/3我还希望状态后的“1”和最后的“3”是变量。