【问题标题】:How to Pass JsonString As a Parameter in Android WebAPI如何在 Android WebAPI 中将 JsonString 作为参数传递
【发布时间】:2025-12-27 21:40:12
【问题描述】:
string sortbyObj ="{'SortName':'DueDate','SortType':'asc'}";

string FiltersObj = "{'StartTime':'1/8/2016','EndTime':'3/8/2018','Ovedue':false,'Status':-1,'Priority':-1,'AssignedTo':-9999,'FollowUpBy':-9999,'Mytasks':false,'StartsWith':'','Endswith':''}";

string apiUrl = MainActivity.GetData("http://" + MainActivity.IPAddress + "/JTASKTest/api/jtasks/GetItemList?uName=admin&tgId=1&sortbyObj='"+sortbyObj.ToString()+"'&FiltersObj='"+FiltersObj.ToString()+"'");

我正在尝试将字符串作为参数发送,但它给出了 'Input string Formate not correct' Exception 。请帮助我如何通过 WebApi 将这两个字符串作为参数发送

【问题讨论】:

  • 你的 API 能识别 url 编码的 json 字符串吗?
  • 在发送之前尝试使用UTF-8 格式进行编码...
  • public List GetItemList(string uName, int tgId, string sortbyObj, string FiltersObj) {} 我正在使用这样的Api函数
  • 我的意思是在 url 中传递你的 json 时使用 URLEncoder
  • 如果在 PHP 中,您可能必须在 API 中使用字符串 urldecode (string $str)。

标签: android android-fragments xamarin xamarin.android xamarin.forms


【解决方案1】:

如果您的 API 识别 url 编码的 Json 字符串,那么我建议您使用类似这样的东西

string url = "http://yourapi/chat?msg=" + HttpUtility.UrlEncode(msg);

详细解答here

在你的情况下:

string apiUrl = MainActivity.GetData("http://" + MainActivity.IPAddress +"/JTASKTest/api/jtasks/GetItemList?uName=admin&tgId=1&sortbyObj='"+  HttpUtility.UrlEncode(sortbyObj.ToString())+"'&FiltersObj='"+HttpUtility.UrlEncode(FiltersObj.ToString()));

但在这种情况下,您应该确保您的 API 理解 URL 编码 JSON

【讨论】:

  • 现在使用编码格式后。感谢您的帮助 Akshay Kulkarni