Tag: http get

Web Api 2 – 如何从HTTPGET返回映像(来自Azure存储的MemoryStream)而不保存到磁盘?

我正在使用带有C#和Azure的Web Api 2,以及如何返回图像(从Memorystream基础)以在页面上显示的问题… 这是我的Controller HTTPGET [Route(“api/PhotoSubmit/GetPhoto/{id}”)] [HttpGet] public HttpResponseMessage GetPhotoById(int id) { StorageServices storage = new StorageServices(); MemoryStream ms = storage.DownloadBlob(id); // return what ? } 这是servicecall的开头: $http({ method: ‘GET’, url: ‘api/PhotoSubmit/GetPhoto/’ + $routeParams.id, accept: ‘application/json’ }) .success(function(result) { // How do i handle the result and what HTML should i use ? <img ? […]

Nullable类型的方法在使用GET的ASMX Web服务中不起作用

我有一个ASMX Web服务设置为使用HTTP GET方法。 采用基本String和Int参数的简单方法正常工作,我可以调用MyService.asmx/MethodName?Param=Value并以XML格式获取响应。 但是,当我有一个具有可空Int(即int? )的方法时,我收到此错误: Web服务方法名称无效。 错误消息令人困惑,因为该方法确实存在,而不是在GET范围内。 我认为这是因为可空类型太复杂而无法通过URL传递,但我找不到任何文档或SOpost。 我很欣赏Lists或自定义类等复杂类型无法使用GET,但我认为可以原生处理一个简单的可空int或可空日期,只需检测它是否从URL中省略。 猜猜不是那么简单! 任何建议或解决方法将不胜感激。 蒂姆,谢谢

MVC获得Vs Post

在阅读MVC概念时,我已经读到在“GET”操作中使用代码来改变服务器对象的状态(数据库更新等)并不是一个好习惯。 已经给出了“返回数据的缓存”作为原因。 有人可以解释一下吗? 提前致谢!

使用C#的异步WebRequests

嗨,我有一个函数,传递url获取参数到Web服务器上的PHP文件,并等待文件的响应(通常需要10-20秒)。 我想把它放在一个循环中,因为我必须同时将这些Get请求发送到大约5个不同的php文件但是当我尝试将它添加到循环时,该函数使循环等待,直到文件返回响应才会进行到下一个。 public string HttpGet(string URI, string Parameters) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI + Parameters); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader resStream = new StreamReader(response.GetResponseStream()); return resStream.ReadToEnd().Trim(); } private void SendCommand() { for( int i = 0; i <= 4; i++) { AddRTB(HttpGet(url, paramater)); } } 有没有办法可以一次发送所有5个请求而无需等待之前完成? (我正在考虑穿线它但是我以前从未碰过它,我不知道从哪里开始。)

将int列表传递给HttpGet请求

我的结构与此类似: [HttpGet] public HttpResponseMessage GetValuesForList(List listOfIds) { /* create model */ foreach(var id in listOfIds) model.Add(GetValueForId(id) /* create response for model */ return response; } 但是,当我对该方法执行Get请求时: {{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2 调试时说明listOfIds为null时出错。 在我们的控制器中,我们有许多公共HttpGet方法可以正常工作,并且当将参数更改为单个int时,它可以工作。 我已经尝试将参数类型更改为int[]和IEnumerable ,但没有更改。 但是,当将调用更改为HttpPost并将列表作为x-www-form-urlencoded值传递时,该方法可行。 是否可以将列表传递给Get方法,还是必须使用Post? 因为它实际上不是post方法(因为它返回值的JSON模型,并且没有任何内容保存到服务器)。

添加’System.Web.Http’命名空间时,找不到类型或命名空间名称’HttpGet’

我在MVC中有一个问题。 目前我在MVC工作,版本是MVC4。 我有2个ActionResult方法,见下文 [HttpGet] public ActionResult About() { ViewBag.Message = “Your app description page.”; return View(); } [HttpPost] public ActionResult About(ModelName ccc) { ViewBag.Message = “Your app description page.”; return View(); } 我们需要using System.Web.Mvc; [HttpPost]和[HttpGet]属性的命名空间。 所以我添加了using System.Web.Mvc; 控制器中的命名空间。 但我需要using System.Web.Http;添加另一个命名空间using System.Web.Http; 对于我的控制器中的httpsresponseexpectionerror handling。我在命名空间中添加了。 这时System.Web.Mvc; 不管用 。 我收到此错误: 无法找到类型或命名空间名称’HttpGet’ 。 为什么? HttpGet的System.Web.Mvc和System.Web.Http之间的任何关系?

如何在WebClient请求中使用GET方法

我如何更改WebClient请求的方法? 它似乎只允许POST默认情况下。 即使在DownloadString的情况下。 try { WebClient client = new WebClient(); client.QueryString.Add(“apiKey”, TRANSCODE_KEY); client.QueryString.Add(“taskId”, taskId); string response = client.DownloadString(TRANSCODE_URI + “task”); result = JsonConvert.DeserializeObject<Dictionary>(response); } catch (Exception ex ) { result = null; error = ex.Message + ” ” + ex.InnerException; } 而Fiddler测试说: POST http://someservice?apikey=20130701-234126753-X7384&taskId=20130701-234126753-258877330210884 HTTP/1.1 Content-Length: 0

将对象的数组传递给webapi

我有一个.net mvc 4 webapi项目,我试图将一个对象数组传递给我的控制器上的方法。 我在SO上找到了一些关于需要设置我的对象属性的例子:param1 = whatever&param2 = bling&param3 = blah。 但我不知道如何使用它来传递集合。 这是我的方法签名。 注意我用[FromUri]属性修饰了参数。 public List GetPhoneNumbersByNumbers([FromUri] PhoneRequest[] id) { List prs = new List(); foreach (PhoneRequest pr in id) { prs.Add(PhoneNumberBL.GetSinglePhoneResult(pr.PhoneNumber, pr.RfiDate, pr.FinDate, pr.State)); } return prs; } 这是我简单的PhoneRequest对象: public class PhoneRequest { public string PhoneNumber { get; set; } public string RfiDate { […]

GET请求上ASP.NET MVC的自定义模型Binder

我已经创建了一个自定义的MVC Model Binder,可以为进入服务器的每个HttpPost调用它。 但是没有调用HttpGet请求。 我应该在GET期间调用自定义模型绑定器吗? 如果是这样,我错过了什么? 如果没有,我如何编写处理来自GET请求的QueryString自定义代码? 这是我的实施…… public class CustomModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { // This only gets called for POST requests. But I need this code for GET requests. } } Global.asax中 protected void Application_Start() { ModelBinders.Binders.DefaultBinder = new CustomModelBinder(); //… } 我已经研究过这些解决方案,但它们并不能满足我的需求: 通过TempData复杂类型 使用默认绑定器构建复杂类型( ?Name=John&Surname=Doe […]