c# - 将参数(字符串)传递给 GetAsync()?

标签 c# asp.net asp.net-mvc api

<分区>

我是创建 Web Api 的新手,我需要将字符串传递给 GetAsync 方法,但我不知道应该向 WebApiConfig 文件添加什么以及更改后如何添加到 GetAsync。我在这里搜索过,但没有找到任何对我有帮助的东西。谁能帮帮我?

我的程序:

private async void registrarServico(string nomeServico)
{
    using (HttpClient clientGet = new HttpClient())
    using (HttpClient clientSet = new HttpClient())
    {
        clientGet.BaseAddress = new Uri("api/ControladorServico/GetServico");
        var respostaGet = await clientGet.GetAsync("", nomeServico); //ERROR HERE!
    }
}

我的 WebApiConfig:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

我的 API 方法:

[HttpGet]
public IHttpActionResult GetServico(string nomeServico)
{
    try
    {
        return Ok(controladorServicoRep.CONTROLADOR_SERVICOSep.Get(d => d.NOME == nomeServico && d.MAQUINA == nomeMaquina).FirstOrDefault());
    }
    catch (Exception)
    {
        throw;
    }
}

谢谢。

最佳答案

那么做这样的事情:

public async Task<TResult> GetAsync<TResult>(string uriString) where TResult : class
    {
        var uri = new Uri(uriString);
        using (var client = GetHttpClient())
        {
            HttpResponseMessage response = await client.GetAsync(uri);
            if (response.StatusCode != HttpStatusCode.OK)
            {
                //Log.Error(response.ReasonPhrase);
                return default(TResult);
            }
            var json = await response.Content.ReadAsStringAsync();
            return JsonConvert.DeserializeObject<TResult>(json, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });
        }
    }

然后你可以这样调用它:

var uriString = string.Format("{0}/{1}", "http://hostaddress/api/ControladorServico/GetServico", nomeServico);
var result = await GetAsync<YourModel>(uriString);

关于c# - 将参数(字符串)传递给 GetAsync()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43003569/

相关文章:

c# - ASP.NET 服务器控件错误 : Unknown server tag

c# - IOException: 找不到网络名称

c# - asp.net mvc 4在AuthorizeAttribute中结束请求

javascript - 在 Javascript 中使用时,服务器端代码会自动对字符进行编码

asp.net-mvc - 没有值(value)的asp.net mvc htmlattribute

c# - 如何为 Web API 中的所有数据成员将 EmitDefaultValue 全局设置为 false?

c# - 哪个更快?

c# - 开始使用 ASP.NET

c# - View 模型应该包含记录器吗?

c# - 如何使用 facebook api 在 Facebook 请求的消息字段中添加 URL?