【问题标题】:Get data from WebApi in c#在 c# 中从 WebApi 获取数据
【发布时间】:2023-03-16 03:47:01
【问题描述】:

我有webapi和她的方法:

[HttpPost, HttpGet]
[ActionName("GetData")]
public MyData GetData([FromUri] MyData data)
{
  return datamanager.get(data);
}

如何调用此方法? IE。如何通过 URL 的查询部分发送data 参数?

要调用不带参数的 get 方法,我使用以下代码:

public static async Task<myClassl> GetData()
{
    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri("http://sasa.com");
    HttpResponseMessage response = await client.GetAsync("api/GetData");
    myClassl data = await response.Content.ReadAsAsync<myClassl>();

    return data ;
}

谢谢。

【问题讨论】:

    标签: c# asp.net .net asp.net-web-api


    【解决方案1】:

    尝试以下解决方案:

    HttpClient client = new HttpClient();
    string baseApiAddress = ConfigurationManager.AppSettings["baseApiAddress"];
    client.BaseAddress = new Uri(baseApiAddress);
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    HttpResponseMessage response=client.GetAsync("/api/GetData",data, new JsonMediaTypeFormatter()).Result;
    if (response.IsSuccessStatusCode)
    {
    var mydata = response.Content.ReadAsAsync<MyData>().Result;
    }
    else
    {
    Debug.WriteLine(response.ReasonPhrase);
    }
    

    【讨论】:

    • 当我使用 GetAsync 时出现编译错误,当我在 webapi 中使用 PostAsync 时我有空参数
    • 对不起,我忘了告诉在配置中的 App.config 文件中添加下一行代码(localhost:23602 只是使用您的端口的示例) localhost:23602/">
    • 我收到错误:错误 'System.Net.Http.HttpClient.GetAsync(string, System.Net.Http.HttpCompletionOption)' 的最佳重载方法匹配有一些无效参数
    • GetAsync 没有数据参数;很可能参数必须在 URI 中发送
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2016-10-02
    • 2017-07-26
    相关资源
    最近更新 更多