You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms中Post请求携参调用Rest API求助

解决Xamarin Forms中RestSharp发送JSON请求的问题

嘿,作为Xamarin Forms新手,调用REST API时遇到这类问题太正常了!我来帮你把代码补全,确保能正确发送你需要的搜索参数,同时搞定Authorization Bearer授权的问题。

首先,先给你补全完整的可运行代码,再拆解关键注意点:

using RestSharp;
using System.Threading.Tasks;

// 建议用异步方法,避免阻塞UI线程
public async Task CallQuickSearchAPI(string bearerToken)
{
    // 初始化RestClient
    var client = new RestClient("http://localhost/NameAPI/api/V1/getquicksearchresults");
    var request = new RestRequest(Method.POST);

    // 添加Authorization授权头
    request.AddHeader("Authorization", $"Bearer {bearerToken}");
    // 显式指定Content-Type,确保API能识别JSON格式请求体
    request.AddHeader("Content-Type", "application/json");

    // 用强类型对象定义搜索参数(比手动拼JSON更安全易维护)
    var searchParams = new 
    {
        busObIds = new[] { "8102508" },
        searchText = "John"
    };

    // 将对象自动序列化为JSON并添加到请求体
    request.AddJsonBody(searchParams);

    try
    {
        // 发送异步请求并获取响应
        var response = await client.ExecuteAsync(request);
        
        // 处理响应结果
        if (response.IsSuccessful)
        {
            // 请求成功,可解析返回的响应内容
            var resultContent = response.Content;
            // 这里添加你的后续业务逻辑...
        }
        else
        {
            // 请求失败,查看错误详情
            var errorInfo = $"请求失败: {response.StatusCode} - {response.ErrorMessage}";
            // 可弹窗提示或记录日志
        }
    }
    catch (System.Exception ex)
    {
        // 捕获网络或其他异常
        var exceptionInfo = $"发生异常: {ex.Message}";
        // 处理异常逻辑
    }
}

下面是几个关键细节要注意:

  • 避免手动拼接JSON:用匿名/强类型对象配合AddJsonBody,RestSharp会自动完成序列化,减少拼写错误,也方便后续修改参数。
  • 异步调用优先:Xamarin Forms是UI框架,同步请求会阻塞UI导致卡顿,ExecuteAsync能保证界面流畅。
  • 显式设置Content-Type:虽然AddJsonBody可能自动添加,但手动指定application/json能避免API因识别不了请求格式而报错。
  • 完善错误处理:通过response.IsSuccessful判断请求状态,加上try-catch捕获网络异常,能快速定位问题(比如授权失败、网络不通等)。

如果遇到具体的错误提示(比如授权无效、参数不被API识别),可以把错误信息贴出来,能更精准地帮你排查~

内容的提问来源于stack exchange,提问作者Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:50:29