首页 > 解决方案 > Rest API Post 带参数获取搜索结果

问题描述

我在 Xamarin Forms 中并对 API 进行休息调用,我对此并不陌生。我想发送我的搜索参数,即:

{ "busObIds": [
"8102508"], "searchText": "John"}

(这是原始 JSON 格式)到 API 端点:

var client = new RestClient("http://localhost/NameAPI/api/V1/getquicksearchresults");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer " + bearer);

我还有一个我需要申请的授权持有人。我在这个过程中磕磕绊绊,不知道如何正确地做到这一点,因为我在 Postman 中被展示了如何做,但目前无法将其转换为我在 Visual Studio Xamarin Forms 中的项目。如果可以的话,请帮忙。

  1. 那么我这样做对吗?
  2. 我需要在模型类中序列化我的 JSON 吗?
  3. 我是发布还是获取?正如它所说的POST,但我不相信我做得对。
  4. 我是否在 AddHeader 中发布我的参数?

无论如何提前谢谢你。

更新:

var _client = new RestClient("http://localhost/NameAPI/api/V1/getquicksearchresults");
            var request = new RestRequest(Method.POST);
            request.AddHeader("Accept", "application/json");
            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddHeader("Authorization", "Bearer " + bearer);
            request.AddParameter("busObIds", "8102508");
            request.AddParameter("searchText", "John");
            IRestResponse response = _client.Execute(request);
            var jsonData = response.Content;
            var jsonObj = JsonConvert.DeserializeObject<CiResponse>(jsonData);
            this.CiList = new ObservableCollection<CiItem>();
            if (null != jsonObj && jsonObj.Types != null && jsonObj.Types.Count > 0)
            {
                foreach (var item in jsonObj.Types)
                    this.CIList.Add(new CiItem
                    {
                        PublicId = item.PublicId,
                        SubTitle = item.SubTitle,
                        Text = item.Text,
                        Title = item.Title
                    });
            }

运行时,我没有任何迹象表明它不正确,但屏幕上没有显示输出。

标签: restapixamarin.formspostmanrestsharp

解决方案


推荐阅读