Tag: rest

使用C#进行JIRA Rest API登录

我写了下面的C#代码来登录JIRA Rest API: var url = new Uri(“http://localhost:8090/rest/auth/latest/session?os_username=tempusername&os_password=temppwd”); var request = WebRequest.Create(url) as HttpWebRequest; if (null == request) { return “”; } request.Method = “POST”; request.ContentType = “application/json”; request.ContentLength = 200; request.KeepAlive = false; using (var response = request.GetResponse() as HttpWebResponse) { } 当我执行它时,应用程序继续运行而不返回任何响应。 请建议这是否是使用REST API调用JIRA登录的正确方法

寻找带有JSON客户端库的REST

我需要连接到通过REST接口提供JSON的端点。 我无法找到任何以连贯的方式结合这两种技术的东西。 我正在寻找一个能让我快速入门的图书馆。

当url包含编码的&符号时,MVC WEB API路由失败

当我打电话给我的webservice时,我会得到两个参数: 从客户端(&)检测到潜在危险的Request.Path值。 Routeconfig: config.Routes.MapHttpRoute( name: “PropertiesSearch”, routeTemplate: “api/property/Search/{category}/{query}”, defaults: new { controller = “Property”, action = “Search”, category = “common”, query = string.Empty } ); Controllermethod: [HttpGet] public SearchResult Search(string category, string query) { } 当我打电话给api时: / API /属性/搜索/家庭/ areaID表示%3D20339%26areaId%3D20015 从客户端(&)检测到潜在危险的Request.Path值。 这样做: / API /属性/搜索/家庭/?查询= areaID表示%3D20339%26areaId%3D20015 工作良好。 如何解决路由解码问题?

如何在wcf restful服务中传递多个参数?

IService.cs [OperationContract] [WebGet(UriTemplate = “/IsValidUser?userid={userid}&password={password}”, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] string IsValidUser(string userid, string password); Service.cs public string IsValidUser(string userid, string password) { if (userid ==”bob” && password ==”bob”) { return “True”; } else { return “false”; } } web.config中 问题: 这里我的问题是我想在调用WCFrest服务时传递多个参数,但我无法将多个参数传递给该WCFrest服务。 我想传递用户ID和密码并检查它。 如果它是bob然后允许继续。 当我打电话给这个url时: http://localhost:48401/ARService/Service.svc/rest/IsValidUser?userid=bob&password=bob 然后我在我的网页上收到此错误: 端点未找到。 请参阅服务帮助页面以构建对服务的有效请求。 如果有人知道如何使用此函数参数调用IsValidUser 。 请帮我。

用用户名和密码调用rest api – 如何

我是新来的api’s并通过.NET调用它们 我有一个api: https : //sub.domain.com/api/operations? param = value & param2 = value api的注释说要授权我需要使用基本的访问认证 – 我该怎么做? 我目前有这个代码: WebRequest req = WebRequest.Create(@”https://sub.domain.com/api/operations?param=value&param2=value”); req.Method = “GET”; //req.Credentials = new NetworkCredential(“username”, “password”); HttpWebResponse resp = req.GetResponse() as HttpWebResponse; 但是我收到401未经授权的错误。 我错过了什么,如何使用基本访问身份validation形成api呼叫?

如何使用REST API在TFS 2015中触发构建

我在本地安装了TFS 2015 RC2。 我正在尝试使用REST API在vNext定义中对构建进行排队。 我正在使用来自VSO的代码示例稍作修改(主要是更改URL和身份validation方法以使用内部部署TFS)。 我正在使用两个REST API调用。 第一个是:GET http:// mytfssrv:8080 / tfs / DefaultCollection / myproject / _apis / build / definitions / 返回所有指定的项目构建定义:ID为1的构建定义,这是一个XAML构建定义我不想排队并使用ID 2构建定义,这是vNext构建定义 – 这就是II想要对我的构建进行排队的地方 请注意,我省略了?api-version = 1.0部分 – 因为如果我不这样做,我只获得XAML构建定义。 第二个调用是在vNext构建定义中对新构建进行排队: POST http:// mytfssrv:8080 / tfs / DefaultCollection / myptoject / _apis / build / requests?api-version = 1.0 以下数据: {“definition”:{“id”:**2**},”reason”:”Manual”,”priority”:”Normal”,”queuePosition”:0,”queueTime”:”0001-01-01T00:00:00″,”requestedBy”:null,”id”:0,”status”:null,”url”:null,”builds”:null} 我从服务器得到的响应是: TF215016:构建定义2不存在。 […]

Web Api – 火与忘记

我有一个Web API的动作,我需要运行一些任务而忘记这个任务。 这就是我的方法现在的组织方式: public async Task DoSth() { await Task.Run(…); ….. //Do some other work } 事情是,显然它停在等待线等待它完成后才继续工作。 我需要“解雇并忘记”我是否应该在没有任何异步等待的情况下调用Task.Run()?

从单个WebApi方法提供多个二进制文件的最佳方法是什么?

我有一个ASP.NET MVC 4 Web Api控制器方法,它传递一个文件ID列表并返回这些文件的缩略图。 因此,客户端可能会传入一个数字ID列表(例如10,303,29),并且该方法返回一个List,其中ThumbnailImage看起来有点像这样: class ThumbnailImage { public int Id { get; set; } // Some other stuff public byte[] RawData { get; set; } } 调用者传入ID列表而不是每个项目进行一次调用的原因应该是显而易见的 – 可能要下载数十个或数百个项目,并且我正在尝试避免所需的所有HTTP流量单独下载它们。 目前,我正在使用RestSharp和JSON.NET,因此我的ThumbnailImage对象作为JSON通过网络传递。 从简单编码的角度来看,它很好,但JSON不是表示二进制数据的有效方式。 所以,我认为我应该将原始字节作为八位字节流返回…但是,虽然我可以轻松地为单个图像执行此操作,但我不确定为多个图像执行此操作的最佳方法,特别是当我还需要为每个文件返回ID和其他其他信息时。 (该ID是必需的,因为结果不一定以给定的顺序返回 – 并且某些文件可能丢失)。 我可以简单地将所有内容零碎地写入响应流中,以便为每个项目编写ID(适当编码),然后是图像数据的长度,然后是图像数据本身,然后是相同的内容下一个项目等 然后,调用者将简单地继续从流中读取,直到它耗尽为止,对ID的编码(和长度!)做出假设等。 我认为这样可行,但看起来很笨 – 有更好的方法吗?

WCF DataContract DataMember订单?

是否按字母顺序创建了从DataContract创建的xml。 我有一个DataContract类定义为: [DataContract(Name = “User”, Namespace = “”)] public class User { [DataMember] public string FirstName { get; set; } [DataMember] public string LastName { get; set; } [DataMember] public string Email { get; set; } [DataMember] public string Password { get; set; } } 当我做了以下POST时: abc 123 email@email.com pass 当我在发布后进行GET并将结果作为JSON返回时,电子邮件为空,但如果我将我的xml发布为: email@email.com abc 123 pass […]

如何使用ServiceStack实现删除服务调用

我有几个与使用ServiceStack的REST服务实现相关的问题。 对于GET操作,我将请求DTO定义如下: [Route(“/Customer/{ID}”, Verbs = “GET”)] public class GetCustomer : IReturn { …. …. } 这里“GetCustomer”是请求DTO,“GetCustomerResponse”是响应DTO。 但是对于PUT / POST / DELETE操作,我只需要知道操作是否成功提交,如果’不’那么什么是exception。 那么对于POST / PUT / DELETE我的请求dto定义应该是什么? 它应该使用如下所示的IReturnVoid吗? [Route(“/Customer/{ID}”, Verbs = “DELETE”)] public class DeleteCustomer : IReturnVoid { …. …. } 如果我必须使用IReturnVoid,那么我如何检索在提交我的操作时可能发生的任何exception信息? 在服务堆栈的error handling文档中,它是写的,我在下面引用 错误响应类型 抛出exception时返回的错误响应取决于是否存在常规命名的{RequestDto}响应DTO。 如果存在: 无论服务方法的响应类型如何,都会返回{RequestDto}响应。 如果{RequestDto}响应DTO具有ResponseStatus属性,则会填充它,否则将不返回ResponseStatus。 (如果您使用[DataContract] / [DataMember]属性修饰了{ResponseDto} Response类和属性,则还需要对ResponseStatus进行修饰以进行填充。 否则,如果不是: 返回一个通用的ErrorResponse,其中包含一个填充的ResponseStatus属性。 服务客户端透明地处理不同的错误响应类型,对于无模式格式(如JSON […]